如何创建二分类变量(dichotomous variable)实现腐败数据分级?
你写的代码不符合你提出的需求,存在两个核心问题:
- 输出格式不符:你需要的是数值型0/1二分类变量,但现有代码生成的是字符串类型的文本标签
- 分类逻辑倒置:你定义数值≥50为高腐败(对应1),但现有代码将≥50的样本赋值为"less corruption"(低腐败),和你的规则相反
另外你给出的定义里≤50归0、≥50归1,边界值50同时满足两个条件,我们默认按高腐败优先级处理,如果你需要把50归为低腐败可以自行调整判断条件。
方案1:直接生成数值型0/1哑变量(严格匹配你给出的规则)
cpi_nueva$corruption <- ifelse(cpi_nueva$corruption >= 50, 1, 0)
方案2:生成带分类标签的因子型变量(适合后续统计分析、可视化时自动识别类别)
cpi_nueva$corruption <- factor( ifelse(cpi_nueva$corruption >= 50, 1, 0), levels = c(0, 1), labels = c("低腐败", "高腐败") )
补充说明
如果你的原始corruption变量是标准的腐败感知指数(CPI,分数越高代表国家清廉程度越高、腐败水平越低),你原本代码里的标签逻辑是符合CPI实际含义的,只是和你写的数值定义规则相反,此时你可以按实际需求调整为:
# 符合CPI实际含义的哑变量规则:1=高腐败,0=低腐败 cpi_nueva$corruption <- ifelse(cpi_nueva$corruption < 50, 1, 0)
内容的提问来源于stack exchange,提问作者DaleCooper
相关产品推荐
相关产品推荐

