R语言 如何为因子变量分配水平[重复]

m3eecexj  于 2023-04-03  发布在  其他
关注(0)|答案(1)|浏览(131)

此问题在此处已有答案

R create factor based on condition(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做过很多工作

bvn4nwqk

bvn4nwqk1#

您可以使用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

相关问题