Замените значение на NA в следующей строке в том же столбце, если приняты условия в 3 других столбцах - PullRequest
1 голос
/ 17 мая 2019

Мне нужно заменить данные в следующей строке того же столбца на NA, если условие в 3 столбце совпадает с предыдущей строкой. Как написать код этого условия?

например, у меня есть пример данных как это

store camp  var    value
 a     1     ax     200
 b     2     bx     100
 a     1     ax     200
 b     2     bx     100
 c     2     cx     100
 a     1     ax     200
 c     2     cx     100

быть таким

store camp  var    value
 a     1     ax     200
 b     2     bx     100
 a     1     ax     NA
 b     2     bx     NA
 c     2     cx     100
 a     1     ax     NA
 c     2     cx     NA

есть ли вообще это сделать? спасибо заранее

1 Ответ

0 голосов
/ 17 мая 2019

Вы можете использовать дубликат - это соответствует тому, что у вас есть

 x <- data.frame( 
 store = c( "a","b","a","b","c","a","c"),
 camp = c(1,2,1,2,2,1,2),
 var = c( "ax","bx","ax","bx","cx","ax","cx"),
 value = c( 200,100,200,100,100,200,10))

 x[ duplicated( x[ , c( "store","camp","var")]) ,"value"] <- NA
...