我正在尋找以下問題的 purrr 解決方案:
說,我們有一些清單:
list( c("Hello", "Well", "You" ),
c("again", "done,", "annoy"),
c("my friend!", "boy!", "me!" ) )
現在,我想組合該串列中的前兩個元素。
我想要的輸出是:
list( c("Hello", "Well", "You" , "again",
"done,", "annoy"),
c("again", "done,", "annoy"),
c("my friend!", "boy!", "me!" ) )
感謝你的幫助!謝謝。
uj5u.com熱心網友回復:
對前兩個list元素進行子集化,concatenate withdo.call并將其分配 ( <-) 回第一個元素
lst1[[1]] <- do.call(c, lst1[1:2])
-輸出
> lst1
[[1]]
[1] "Hello" "Well" "You" "again" "done," "annoy"
[[2]]
[1] "again" "done," "annoy"
[[3]]
[1] "my friend!" "boy!" "me!"
purrr,我們可以使用modify_in
library(purrr)
modify_in(lst1, 1, ~ flatten_chr(lst1[1:2]))
[[1]]
[1] "Hello" "Well" "You" "again" "done," "annoy"
[[2]]
[1] "again" "done," "annoy"
[[3]]
[1] "my friend!" "boy!" "me!"
資料
lst1 <- list(c("Hello", "Well", "You"), c("again", "done,", "annoy"),
c("my friend!", "boy!", "me!"))
uj5u.com熱心網友回復:
我認為您不需要purrr解決方案,但是如果您出于某些作業流程原因堅持...
x <- list(c("Hello", "Well", "You"),
c("again", "done,", "annoy"),
c("my friend!", "boy!", "me!"))
library(purrr)
modify_at(x, 1, ~ c(., x[[2]]))
# which can simplify to...
x %>%
modify_at(1, c, .[[2]])
# or with more purrr!!
x %>%
modify_at(1, c, pluck(., 2))
但我只會做...
x[[1]] <- c(x[[1]], x[[2]])
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/428997.html
