R语言报错:替换值行数为0与数据行数1338不匹配问题
问题解决步骤
错误原因分析
你遇到的报错replacement has 0 rows, data has 1338,本质是替换Charges列的向量长度和原数据行数不匹配,大概率是以下两种情况:
- 原
Charges列是因子型,直接用gsub会操作因子的水平值而非元素,导致返回空向量 - 替换后的字符串无法转为数值,且处理过程中意外生成了长度为0的向量
修正转换代码
先确保正确将Charges转为数值型:
# 先转为字符型(规避因子型的问题),替换逗号后转数值,保留NA data$Charges <- as.numeric(gsub(",", "", as.character(data$Charges)))
验证转换结果
执行后检查转换是否成功:
# 查看列类型和统计信息 class(data$Charges) summary(data$Charges)
划分为两类
以中位数为分界点将数值分为高低两类(可根据需求调整分界规则):
# 计算中位数(忽略NA) charge_cutoff <- median(data$Charges, na.rm = TRUE) # 生成分类列 data$Charge_Category <- ifelse(data$Charges >= charge_cutoff, "高费用", "低费用")
内容的提问来源于stack exchange,提问作者Kavuraya Seky
相关产品推荐
相关产品推荐

