首先,为可怜的不清楚的问题标题道歉,这是一个非常具体的问题,我不知道如何用一行来表达!
无论如何,我的问题如下。我有一个带有 id、父 id 和两个值的数据框,比如 a 和 b。我想将一行的 id 更新为它的 parent_id,除非它的值不等于它的 parent_id。
所以例如说我有桌子:
id parent_id a b
1 0 x x
2 1 x x
3 1 x y
4 0 y y
5 4 x x
6 1 x x
7 4 y y
可以用代码生成
x <- data.frame('id' = c(1,2,3,4,5,6,7),
'parent_id' = c(0,1,1,0,4,1,4),
'a' = c('x','x','x','y','x','x','y'),
'b' = c('x','x','y','y','x','x','y'))
这应该变成:
id parent_id a b
1 0 x x
1 1 x x
3 1 x y
4 0 y y
5 4 x x
1 1 x x
4 4 y y
所以id
2 变成了 1,因为它是parent_id
,并且是属性a
&b
都等于x
,与 1 相同id
,但是id
3 保持不变,尽管它parent_id
是1
,但它不具有相同的属性。
任何帮助,将不胜感激。