Подмножество кадра данных в R на основе выше и ниже порогового значения

Я много искал, чтобы найти пост, похожий на мой пост ниже, но пока не повезло. У меня есть 1 столбец данных, как показано ниже (извлечен из исходного большого файла с множеством столбцов)

C1 
0 
1 
2 
3 
4 
3
3
2
1

Из этих данных я хочу создать новый столбец C2, где в C2 следует просто указать, где значения столбца C1 выше и ниже порогового значения по сравнению с максимальным значением. В этом случае max(C1) равно 4. Поэтому, если установить пороговое значение 2, новые данные должны быть такими, как показано ниже.

C1 C2 
0  0
1  0
2  1
3  1
4  1
3  1
3  1
2  1 
1  0

Примечание. Мои данные всегда имеют тенденцию к увеличению до определенного момента, а затем тенденцию к снижению после этого. Я знаю, как сделать простое простое подмножество в определенном столбце, но у меня нет логики для подмножества, когда есть тенденция к увеличению и уменьшению.

Заранее спасибо.


person Sidda Reddy K.    schedule 07.03.2015    source источник


Ответы (1)


Я бы использовал пакет plyr в r и оператор ifelse как часть функции mutate. Я напишу свой код, а затем объясню. Я предполагаю, что у вас уже есть вектор C1 во фрейме данных с именем df.

install.packages('plyr')

библиотека (плир)

df2 ‹- мутировать(df, c2 = ifelse(c1 ›= 2,1,0))

Функция mutate создает новый столбец, который удовлетворяет любой функции, которую вы хотите. В этом случае я использовал функцию ifelse, аналогичную функции Excel IF(), которая вводит:

Условие , Что произойдет, если True , Что произойдет, если false.

Надеюсь, это поможет =)

person Emby    schedule 12.03.2015
comment
Уважаемый Emby, Ваш код не работает для меня в моем конкретном случае. Однако я получил ответ на свой вопрос. - person Sidda Reddy K.; 15.03.2015