【发布时间】:2016-02-17 02:37:42
【问题描述】:
我有一个空数据框 x0:x10 的列表 (xlist)。我还填充了数据框y(大约 13,000 行)。所有数据框都有列数和列标题。
y Date Time Correct Incorrect Average Score EC E1? E2? E3?
[1] 10/1 1:14 8 2 15 80 0 y n y
[2] 10/2 8:45 5 5 12 50 1 n y y
我正在尝试将y 的每一行复制到xlist 中的一个数据帧中。
for (i in 1:nrow(y)) {
xlist(paste0("x",y[i,3])) <- rbind(xlist(paste0("x",y[i,3])), y[i,]))
}
基本上,根据“正确”列中的数字,我想将该行复制到xlist 中的相应数据框中(所以第一行到x8,第二行到x5)。
数据框列表的问题在于它没有在这里将它们作为数据框读取
> class(xlist[x1])
[1] "list"
但它在环境面板中
xlist list of 11
x0: 'data.frame' 0 obs of 10 variables:
..$ etc
x1: 'data.frame' 0 obs of 10 variables:
..$ etc
etc
使用上面的复制代码会抛出“要替换的项目数不是替换长度的倍数”。一些重写得到了“参数列数不匹配”(不确定如何)。所以我尝试创建自己的 AddRow 函数来查看rbind 是否是问题所在:
AddRow <- function(DF,NewRow) {
DF[nrow(DF) + 1] <- NewRow
DF
}
但它会引发“矩阵中的下标数不正确”错误。
如何将y 的所有行复制到xlist 内的相应数据框中?
【问题讨论】: