用因子替换范围内的数字

如上所述。数据框是一系列年龄的整数。我试图将它们转换为序数变量。代码如下。用因子替换范围内的数字

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

回到顶部