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)
而无需在P
内复制并粘贴qpcR::cbind.na()
?
答案 0 :(得分:1)
看起来这就是你要找的东西。 get()
函数是此解决方案的关键。打开它有帮助!
M <- df1
for (i in 2:3) {
new_df <- paste("df", i, "", sep = "")
M <- qpcR:::cbind.na(M, get(new_df))
}
t(M)