我有一个 data.frames 列表,每个 data.frames 中有多个列。每个 data.frame 都有相同的结构。
此外,我还有另一个包含多个 data.frames 的列表。
假设这是两个列表:
firstlist <- list(a=data.frame(AA=5:1,
BB=1:5),
b=data.frame(AA=5:1,
BB=1:5),
c=data.frame(AA=5:1,
BB=1:5))
secondlist <- list(a=data.frame(AA=1:10,
BB=c(0,0,1,0,0,1,1,0,0,0)),
b=data.frame(AA=1:10,
BB=c(0,1,0,0,0,0,1,0,0,0)),
c=data.frame(AA=1:10,
BB=c(1,0,0,0,0,1,1,0,0,0)))
现在我想将 CC 列添加到第一个列表中的所有 data.frames 中,并根据第二个列表中 BB 列中的值相应地填充它们。
问题是:我需要检查第一个列表中的 AA 或 BB 中的行是否包含第二个列表中 AA 的值,并使用第二个列表中 BB 的值填充第一个列表中的新列 CC。
上述示例数据的预期结果将是:
> firstlist
$a
AA BB CC
1 5 1 0
2 4 2 0
3 3 3 1
4 2 4 0
5 1 5 0
$b
AA BB CC
1 5 1 0
2 4 2 1
3 3 3 0
4 2 4 1
5 1 5 0
$c
AA BB CC
1 5 1 1
2 4 2 0
3 3 3 0
4 2 4 0
5 1 5 1
我需要使用 For 循环还是有其他方法?
更新:
看塞尔的解决方案 https://stackoverflow.com/a/17201471/2123407对于布尔数据和埃迪的解决方案 https://stackoverflow.com/a/17199228/2123407对于所有数据类型。
先感谢您!