【发布时间】:2011-08-19 16:03:24
【问题描述】:
如果我有这样的列表:
list <- list( "1" = data.frame(time=1:3, temp = sample(11:13)),
"3" = data.frame(time=1:3, temp = sample(11:13)))
list
$`1`
time temp
1 1 11
2 2 12
3 3 13
$`3`
time temp
1 1 11
2 2 12
3 3 13
现在我想为 temp 列添加一个校正值,数据帧 1 为 +1,数据帧 3 为 -1,因此结果将是:
$`1`
time temp
1 1 12
2 2 13
3 3 14
$`3`
time temp
1 1 10
2 2 11
3 3 12
另外假设我有多个这些列表,有时可能缺少数据帧 3 或 1,甚至可能包含数据帧 2,这需要它自己的校正因子... 我为数据框 1 尝试了奇怪的事情:
list <- lapply(list, function(x) {x <- x$"1"$temp-1;x})
或
list <- lapply(list, function(x) {x <- x[x$temp+1,];x})
还尝试为列表中的其他数据框添加 seq_along...没有任何效果,可能是因为我不太了解语法的工作原理...
【问题讨论】:
-
在投反对票之前,我会给他们一个很好的机会来编辑明显是混乱的东西......耐心!
-
好的,我等待完整的问题。但这仍然太模棱两可,无法回答。构建一个实际代表您的全部问题的可重现示例。
-
如果这个数据都是一样大小的,最好把它存成data.frame(),这样肯定会简化操作。如果您想要一种快速而肮脏的方式来转换回 data.frame,您可以使用 plyr 包中的 df