在r中创建一个对象向量

时间:2014-12-19 12:10:32

标签: r

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()

1 个答案:

答案 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)