如何将水平分配给因子变量[重复]

问题描述 投票:0回答:1

我在 R 中有一个数据集,其中 yr_renovated 列具有 0 或整数(即 1998)表示房屋翻新的年份。如果房子是,我将如何创建一个水平为是和否的因子变量装修与否。

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 上做太多工作

r r-factor
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.