2013-09-08 3 views
-1

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

Например, если у меня есть один столбец в виде x $ n = [1,2,3,4,5,6] (значения в других колонах не имеют значения. И я хочу, чтобы другой столбец был столбцом категории, присваивает значение 0, если x $ n < 2, 1, если x $ n находится между 3 и 4 и 3, если x $ n> 4. Так что мой соответствующий столбец будет x $ category = [0,0,1,1,2 , 2]

ответ

0

cut Использование:

within(x, category <- as.integer(cut(n,c(-Inf,2,4,Inf)))-1) 

Использование ifelse:

within(x, category <- ifelse(n>4, 2, ifelse(n>2, 1, 0))) 

Использование неявных булева -> целое принуждение ::

within(x, category <- (n>2) + (n>4)) 
0

Если у вас есть:

x = data.frame(n = 1:6) 

и только три категории, то самое простое решение было бы:

x$category = 0 
x$category[x$n > 2] = 1 
x$category[x$n > 4] = 2 

Если вы хотите быть действительно умным, тогда вы могли бы сделать:

x$category = floor(x$n/2.5) 

floor функция «просто округляет.