【发布时间】:2016-10-19 14:36:55
【问题描述】:
我有一个包含 100 多个数据帧的列表,每个数据帧有 3 列。
这里是 data.frames 之一的示例:
[[6]]
V1 V2 V3
2 12002
9 05 Jan 1974 404.074 2.940
10 12 Jan 1974 477.433 3.235
11 18 Jan 1974 443.135 3.099
12 30 Jan 1974 556.402 3.537
13 22 Nov 1974 534.586 3.455
我想要做的是将第一列的第一行值复制到其他两列中的其他两个第一行值。
我的结果,对于列表中包含的所有 data.frames 应该是:
[[6]]
V1 V2 V3
2 12002 12002 12002
9 05 Jan 1974 404.074 2.940
10 12 Jan 1974 477.433 3.235
11 18 Jan 1974 443.135 3.099
12 30 Jan 1974 556.402 3.537
13 22 Nov 1974 534.586 3.455
n.b.每个数据帧要复制的值都不同。
我尝试先为一个 data.frame 执行此操作(不使用 lapply),它确实有效:
list[[1]]$V2[1] = list[[1]]$V1[1]
但是当我尝试使用lapply 函数时,它不再起作用了:
list = lapply(list, function(x) x$V2[1] = x$V1[1])
我的代码有什么问题?
【问题讨论】:
-
要注意的一件事是不要将您的列表称为“列表”。
-
谢谢,我会记住这一点的。