【发布时间】:2015-03-02 22:17:40
【问题描述】:
我有一个数据框列表。我想对数据框的列执行操作,然后在数据框中创建一个新列,并生成新列。
a <- data.frame(c(1,2,3), c(2,3,4))
b <- data.frame(c(7,8,9), c(5,6,2))
l <- list(a, b)
lapply(l, function(x) x[,2]*2)
我想要将4 6 8 和10 12 4 分别分配给第一个和第二个数据帧的第三列。
这似乎不起作用:
lapply(l, function(x) x[,2]*2 -> x$new)
【问题讨论】:
-
你要返回数据框:
lapply(l, function(x) { x[,2]*2 -> x$new; x }). -
@lukeA 你能澄清一下 {} 的语法吗?
-
唯一与您不同的是
return(x)- 或简称:x。由于该函数不仅包含一个命令,而且包含两个(由;或换行符分隔),因此您必须将其包装在{...}中。x返回您添加new后的数据框。 -
知道了!现在我可以将其分配回
l并保持良好状态。谢谢!