将R中的列添加到数据框中

时间:2013-09-08 14:40:36

标签: r dataframe categories

如何根据数据框另一列中的值向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]

2 个答案:

答案 0 :(得分:1)

使用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)))

使用隐式布尔值 - &gt;整数强制::

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

答案 1 :(得分: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功能只是向下舍入。