假设我有一个列表
lst <- list(c("A1", "A1", "A1", "A1", "A1", "A1"),
c("", "R1", "R2", "R2", "R2", "R2"),
c("", "", "", "U1", "U2", "U3"))
输出结果在哪里
[[1]]
[1] "A1" "A1" "A1" "A1" "A1" "A1"
[[2]]
[1] "" "R1" "R2" "R2" "R2" "R2"
[[3]]
[1] "" "" "" "U1" "U2" "U3"
现在,我希望有一个单一的向量,其中元素按以下方式组合。
out <- paste0(lst[[1]], lst[[2]], lst[[3]])
输出结果将会是什么?
[1] "A1" "A1R1" "A1R2" "A1R2U1" "A1R2U2" "A1R2U3"
我该如何更加动态地完成这个任务(例如,对于更长/更短的列表)?我尝试使用sapply
等方法,但都没有成功。
do.call
。我承认我是从Python
转过来的。一旦可能,我会接受答案的,谢谢。 - Jando.call("rbind",list_of_data_frames)
可能是最常见的do.call
用法。dplyr 和 data.table 都有专门(快速)的函数来实现这个特定的目的。如果你想尝试超越基本的 R,一些人会使用purrr::pmap
来处理这种需要将函数映射到多个输入的任务。 - joranR
语言,未来逐步提高水平。有时候R
的语法很奇怪(至少对我来说是这样)。如果您愿意,可以使用purrr
发布答案,我会很高兴地点赞。 - Jando.call
的好朋友Reduce(paste0, lst)
。我相信在 Python 中存在一个名字/行为几乎相同的函数,不过已经有一段时间了。 - lmo