如何为因子变量分配水平

时间:2019-09-13 19:18:12

标签: r

我在R中有一个数据集,其中yr_renovated列中的房屋翻新年份为0或整数(即1998年)。我如何创建级别为yes和no的因子变量,如果房子是否装修过。

head(House_Data$yr_renovated,n=20)
[1]    0    0    0    0    0    0    0    0    0    0    0    0 1998    0    0    0    0    0    0 

我在想类似

levels(renovated)[levels(renovated) <= 0] <- "no"
levels(renovated)[levels(renovated) > 0] <- "yes"

但是我看到它是在网上使用的,我不知道它是如何工作的,我也意识到,如果我在分配级别时出错,可以说

levels(renovated)[levels(renovated) <= 0] <- "yes"
levels(renovated)[levels(renovated) > 0] <- "yes"
levels(renovated)[levels(renovated) <= 0] <- "no"

最后一个级别将不会覆盖第一个级别,我唯一的级别将是,我将如何删除该第一个错误分配的级别?

no  no  no  no  no  no  no  no  no  no  no  no  yes no  no  no  no  no  no  no 
Levels: no yes

这是最终答案应该是什么样的,或者如果使用table()

renovated
  no  yes 
5762  238 

但是有时候它会给我这个结果

renovated
 Yes 
6000 

不好意思,我对R的新手知识,到目前为止,在大学的统计模块中,我们对R的工作还很少。

1 个答案:

答案 0 :(得分:2)

您可以使用factor并分配所需的labels

yr_renovated <- c(0, 0, 1998, 0, 2010, 0)

renovated <- factor(yr_renovated == 0, labels=c("Yes", "No"))
table(renovated)

#> renovated
#> Yes  No 
#>   2   4