2015-04-26 4 views
1

У меня есть dataframe values, как показано нижеR Извлечение строк со значениями больше, чем в предыдущих столбцах

row.names January February March 
A1   0.02345 0.03456 0.04567 
A2   0.07654 0.06543 0.05432 
A3   0.02345 0.03456 0.04567 

мне нужно извлечь строки с колонкой значения больше, чем предыдущие столбцы мы можем видеть, что для А1 и А3, значения столбца больше предыдущих. т.е. 0,02345 < 0,03456 < 0,04567

row.names January February March 
A1   0.02345 0.03456 0.04567 
A3   0.02345 0.03456 0.04567 

Нужна помощь, чтобы извлечь строки с указанным выше требованием.

+2

Hm .. похоже во всех строках этого условие выполнено. Почему 'A2' не удовлетворяет условию? –

+1

Также поделитесь своими попытками решить это в коде R. –

+0

упс! i m извините A2 должно быть в обратном порядке –

ответ

1

Вот возможный подход

indx <- colSums(apply(data, 1L, diff) > 0L) == (ncol(data) - 1L) 
data[indx, ] 
# January February March 
# A1 0.02345 0.03456 0.04567 
# A3 0.02345 0.03456 0.04567 

Более простой вариант (см @alexis_laz комментарий) является использование встроенной функции unsorted

indx <- !apply(data, 1, is.unsorted) 
data[indx, ] 
+1

Спасибо. Это сработало! :-) –

Смежные вопросы