我有一个 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 列添加到 firstlist 中的所有 data.frames 中,并根据 secondlist 中 BB 列中的值填充它们。
问题是:我需要检查 firstlist 中 AA 或 BB 中的行是否包含 secondlist 中 AA 的值,并用 secondlist 中 BB 的值填充 firstlist 中的新列 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 循环还是有其他方法?
更新:请参阅Thell 的布尔数据解决方案和eddie 的所有数据类型解决方案。
先感谢您!