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

Мне нужно заменить данные в следующей строке того же столбца на 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 ответ


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

 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

Есть идеи?

10000