我有一个 R 数据框 dftotal
i A B C D
1 4 15 4 12
2 13 4 4 7
3 1 1 3 8
4 3 11 1 9
我想编写一个循环,遍历列(A、B、C、D)并每次创建一个新的数据框,以便我为每一列都有一个数据框:
DFA:
i A
1 4
2 13
3 1
4 3
和 dfB:
i B
1 15
2 4
3 1
4 11
等等...
我试过了:
List <- colnames(dftotal)
List <- List[-1]
for (j in length(List))
{
df <- data.frame(dftotal$i,dftotal[List[j]])
assign(paste("df",List[j]), df)
}
但这仅返回了我列表中最后一列的数据框。它似乎覆盖了循环中创建的其他数据帧。
df <- data.frame(dftotal$i,dftotal[List[1]])
assign(paste("df",List[1]), df)
工作正常,当我手动逐列运行时。
我究竟做错了什么?
为了记录 - 回答你做错了什么的问题:
for (j in length(List))
应该是
for (j in 1:length(List))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句