将R中的列添加到数据帧

将R中的列添加到数据帧,r,dataframe,categories,R,Dataframe,Categories,如何根据数据帧的另一列中的值向R中的数据帧添加列 例如,如果我有一列x$n=[1,2,3,4,5,6](其他列中的值并不重要。我希望另一列作为“类别”列,当x$n4,则赋值为1。这样,我对应的列将是x$category=[0,0,1,1,2,2]使用cut: within(x, category <- as.integer(cut(n,c(-Inf,2,4,Inf)))-1) 使用隐式布尔->整数强制:: within(x, category <- (n>2) + (n>

如何根据数据帧的另一列中的值向R中的数据帧添加列


例如,如果我有一列x$n=[1,2,3,4,5,6](其他列中的值并不重要。我希望另一列作为“类别”列,当x$n<2时赋值为0,如果x$n在3和4之间,如果x$n>4,则赋值为1。这样,我对应的列将是x$category=[0,0,1,1,2,2]

使用
cut

within(x, category <- as.integer(cut(n,c(-Inf,2,4,Inf)))-1)
使用隐式布尔->整数强制::

within(x, category <- (n>2) + (n>4))
在(x,类别2)+(n>4)之内
如果您有:

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
功能只需向下舍入即可

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