如何根据数据框另一列中的值向 R 中的数据框添加一列?
例如,如果我有一列作为 x$n = [1,2,3,4,5,6] (其他列中的值并不重要。我希望另一列作为“类别”列,如果x$n < 2, 如果 x$n 在 3 和 4 之间,则为 1;如果 x$n > 4,则为 3。所以我的对应列将是 x$category = [0,0,1,1,2,2]
如何根据数据框另一列中的值向 R 中的数据框添加一列?
例如,如果我有一列作为 x$n = [1,2,3,4,5,6] (其他列中的值并不重要。我希望另一列作为“类别”列,如果x$n < 2, 如果 x$n 在 3 和 4 之间,则为 1;如果 x$n > 4,则为 3。所以我的对应列将是 x$category = [0,0,1,1,2,2]
使用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))
如果你有:
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
函数只是四舍五入。