2013-07-30 3 views
1

У меня есть кадр данных с коллом, называемый концентрацией с числовыми значениями.Как добавить новый столбец со значениями на основе условия числового значения в R?

Concentration 
700657 
850789 
90
1011234 
750001 

Я хочу, чтобы добавить новый столбец CDrange, который имеет значение 700k + 800k + 900k +, 1000k +. Значения в новом столбце будут назначаться на основе значения концентрации, например. если значение равно 700657, расчетное значение должно быть 700k +, если значение равно 850789, тогда значение равно 800k + и так далее. Как написать функцию без использования if else loop. Новая колонка должна выглядеть так:

Concentration  CDrange   
700657    700k+ 
850789    800k+ 
90k+ 
1011234    1000k+ 
750001    700k+ 

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

+0

Вы не представились язык. Я вывел R на основе тега ** cbind **, поэтому я отправил изменение для добавления тега ** r **. Если это неверно, отредактируйте свой пост, чтобы указать язык. –

ответ

3

См. ?cut и ?findInterval.

df$CDrange <- cut(df$Concentration, c(700000, 800000, 900000, 1000000, Inf), 
        labels=c("700k+","800k+","900k+","1000k+") right=FALSE) 
2

Проверить этот пример:

x <- c(800000, 800001, 800999, 1234567) 
paste0(x %/% 1000, ifelse((x %% 1000)>0, "k+", "k")) 

#[1] "800k" "800k+" "800k+" "1234k+"