首先爲不清晰的問題標題道歉,這是一個相當具體的問題,我不知道如何在一行中輸入!將id更新爲它的parent_id,除非它有不同的值
無論如何,我的問題如下。我有一個數據框與一個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
,與id
1相同,但是id
3保持不變,儘管它的parent_id
是1
,它不具有相同的屬性。
任何幫助,將不勝感激。
我已經更新了我的答案與文本或數字數據的工作。數據中的順序應該不重要,因爲'match'返回的是位置而不是匹配的值。 – thelatemail