根据我的要求,我无法得到解决方案 . 如果data.table(如下所示)在Col1和Col3中具有匹配值 . 替换Col2值(旧的与New-Val) .
Col1 Col2 Col3
1 old a
1 old a
1 New-Val a
操作数据表后应如下所示:
Col1 Col2 Col3
1 New-Val a
1 New-Val a
1 New-Val a
Update:
我写了New-Val来理解这个要求 . 但是我无法匹配此值,因为它因Col1和Col3的不同值而异 . 例如如下:
Col1 Col2 Col3
1 blank a
1 blank a
1 New1 a
2 blank b
2 new2 b
2 new2 b
同样,条目很大 . 所以我理想地希望匹配Col1和Col3,而在Col2中它是空白的(总是),无论匹配的Col1和Col3值是否匹配,它都将被替换 .
这应该被操纵为:
Col1 Col2 Col3
1 New1 a
1 New1 a
1 New1 a
2 new2 b
2 new2 b
2 new2 b
2 回答
我们可以将"Col2"中的"blank"值替换为NA,并使用
na.locf
将NA替换为"Col1"和"Col3"分组的"New"值 .或者我们可以不使用任何其他包
另一个选择是使用二进制连接与
by = .EACHI
结合 - 这也适用于因素