for循环的输出由大量数据组成。我想使用函数qpcR::cbind.na()将它们合并到一个数据帧中。例如:
df1 <- data.frame(a=1:2, b=1:2)
df2 <- data.frame(a=1:5, b=1:5)
df3 <- data.frame(a=1:3, b=1:3)
library(qpcR)
M <- t(qpcR:::cbind.na(df1, df2, df3))
1 2 3 4 5
a 1 2 NA NA NA
b 1 2 NA NA NA
a 1 2 3 4 5
b 1 2 3 4 5
a 1 2 3 NA NA
b 1 2 3 NA NA我想将for循环的输出自动放入这个函数中,以创建M。下面的内容并不能完成这项工作:
n = 3 # number of loop iterationns
B <- c()
for (i in 1:n) {
B[i] <- paste("df[[", i, "]]", sep = "")
}
P <- print(paste(B, collapse=","), quote = F)
M <- t(qpcR:::cbind.na(P))这些也不是:
M <- do.call(t(qpcR:::cbind.na()), list(P))
M <- lapply(P, t(qpcR:::cbind.na()))如何创建对象的向量( c(df1, df2, df3) ),而不需要在qpcR::cbind.na()中复制和粘贴P
发布于 2014-12-19 16:57:09
看来这就是你要找的东西。get()函数是此解决方案的关键。不,这有帮助!
M <- df1
for (i in 2:3) {
new_df <- paste("df", i, "", sep = "")
M <- qpcR:::cbind.na(M, get(new_df))
}
t(M)https://stackoverflow.com/questions/27565882
复制相似问题