【发布时间】:2018-03-10 21:36:23
【问题描述】:
我想完成以下任务,而不必进入 for 循环,而是在单个 apply() 命令中。
我有一个列表a,我想重复N 次,其中N 是向量b 的长度,将a 的每个重复粘贴到b 的元素中。
到目前为止,我已经完成了以下 MWE:
var <- paste("var", 1:4, sep="")
treat <- c("A","B")
spec <- paste("sp", 1:3, sep="")
a <- combn(var, 2, simplify = FALSE)#this 6 times, for each treatment and species
b <- do.call(paste, c(expand.grid(treat, spec), sep='.'))
a1 <- lapply(a, paste, b[1], sep='.')
a2 <- lapply(a, paste, b[2], sep='.')
a3 <- lapply(a, paste, b[3], sep='.')
a4 <- lapply(a, paste, b[4], sep='.')
a5 <- lapply(a, paste, b[5], sep='.')
a6 <- lapply(a, paste, b[6], sep='.')
a.final <- c(a1,a2,a3,a4,a5,a6)
a.final
如果我可以在a 之前粘贴b,那将是最佳选择。
请注意,我的出发点是 3 个向量:var、treat 和 spec,因此您可以随意更改任何内容。
【问题讨论】:
标签: r list combinations apply paste