R:循环数据帧并重新分配因子级别

时间:2017-09-26 21:48:00

标签: r list loops

我试图在3个独立的数据帧中设置相同的因子水平,所以我尝试通过列表和循环更有效地这样做。

dlist <- list(d1, d2, d3)
for (i in 1:length(dlist)) {
  dlist[[i]]$myFactor <- factor(dlist[[i]]$myFactor, levels=c("l1", "l2"))
}

这似乎更新了dlist中复制的数据帧的因子级别,但不是更新数据帧本身的因子级别。如何更改d1 $ myFactor,d2 $ myFactor,d3 $ myFactor?

1 个答案:

答案 0 :(得分:2)

当您将data.frames放在列表dlist中时,它们不再链接到原始data.frames。更新dlist中的值不会更新d1d2d3中的值。

您应该从这里开始使用dlist。您可以在列表中引用具有索引值的各个元素(data.frames)。

如果您希望它们退出列表,您必须单独执行此操作:

d1 <- dlist[[1]]