我有一列是数据框的一部分,df
. 它充满了整数。假设它是现实公司在一天内售出的房屋数量。让我们称之为df$houses
。我想做第二列,称为df$quant
房屋数量的分类,0 表示一天内售出 0-2 间房屋,1 表示 3-5 间房屋,2 表示 6-9 间房屋,3 表示超过 10 间房屋?我可以分两步完成。
1)df$quant
从df$houses
以下位置创建新列:
df$quant <- df$houses
2) 更改 的值df$quant
:
df$quant[which(df$quant <= 2)] <- 0
等等。
不过,我想一步完成,创建新变量并用正确的值填充它。大多数情况下,我不必担心第二步中代码行的顺序是否正确。它会更健壮。
这可以用 if 语句完成吗?
非常感谢。
我会做这样的事情:(使用cut
)
x <- 1:11
df <- data.frame(x)
myFunction <- function(x) as.integer(cut(x, c(-1, 2, 5, 9, max(x)))) - 1
df$new <- myFunction(df$x)
df
x new
1 1 0
2 2 0
3 3 1
4 4 1
5 5 1
6 6 2
7 7 2
8 8 2
9 9 2
10 10 3
11 11 3
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句