Сравните текущую строку с предыдущей в R - PullRequest
0 голосов
/ 30 января 2019

Я хочу удалить всю строку, если текущее значение C больше, чем предыдущее значение, а затем удалить эту строку

A  B   C 
1: 1 10 100
2: 2 20 200 
3: 3 30 800
4: 4 40 400
5: 5 50 500

Например, в строке 3: 800> 200, поэтому удалите строку3

Результат:

 A  B    C
1: 1 10 100
2: 2 20 200
4: 4 40 400
5: 5 50 500

Спасибо !!

Ответы [ 2 ]

0 голосов
/ 30 января 2019

С dplyr:

library(dplyr)
filter(df, C <= lead(C, default = C[n()]))

Выход:

  A  B   C
1 1 10 100
2 2 20 200
3 4 40 400
4 5 50 500

Данные:

df <- structure(list(A = 1:5, B = c(10L, 20L, 30L, 40L, 50L), C = c(100L, 
200L, 800L, 400L, 500L)), class = "data.frame", row.names = c("1:", 
"2:", "3:", "4:", "5:"))
0 голосов
/ 30 января 2019

Это сделает это:

your_data[c(diff(your_data$C) >= 0, TRUE), ]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...