用因子替换范围内的数字
如上所述。数据框是一系列年龄的整数。我试图将它们转换为序数变量。代码如下。用因子替换范围内的数字
df <- read.table("http://dl.dropbox.com/u/822467/df.csv", header = TRUE, sep = ",") df[(df >= 0) & (df <= 14)] <- "Age1"
df[(df >= 15) & (df <= 44)] <- "Age2"
df[(df >= 45) & (df <= 64)] <- "Age3"
df[(df > 64)] <- "Age4"
table(df)
正如我们所见,这是行不通的。任何人都可以帮我提出一个更好的方法来做到这一点?
回答:
使用cut
做到这一步:
dfc <- cut(df$x, breaks=c(0, 15, 45, 56, Inf)) str(dfc)
Factor w/ 4 levels "(0,15]","(15,45]",..: 3 4 3 2 2 4 2 2 4 4 ...
一旦你感到满意的是breaks
正确指定,然后你可以同时使用labels
参数重新标记的水平:
dfc <- cut(df$x, breaks=c(0, 15, 45, 56, Inf), labels=paste("Age", 1:4, sep="")) str(dfc)
Factor w/ 4 levels "Age1","Age2",..: 3 4 3 2 2 4 2 2 4 4 ...
以上是 用因子替换范围内的数字 的全部内容, 来源链接: utcz.com/qa/266537.html