如何在R中替换数据集指定值并解决列下标重复报错
问题原因及解决方法
报错原因
你使用Dataset[行条件] <- "Other"的索引写法不符合R数据框的索引规则:当数据框的[ ]中只传入1个参数时,R会默认将其识别为列索引,而你传入的是匹配行数的逻辑向量(用于筛选行),长度和列数不匹配,因此触发列下标重复的报错。
解决方法
方法1:补全数据框索引参数
在[ ]中用逗号分隔行、列索引,明确指定修改category_alt列:
Dataset$category_alt = Dataset$category_title # 行条件写在逗号前,要修改的列名写在逗号后 Dataset[Dataset$category_alt == "Shows", "category_alt"] <- "Other" Dataset[Dataset$category_alt == "Nonprofits & Activism", "category_alt"] <- "Other"
方法2:直接对列向量操作
先提取category_alt列向量再做条件赋值,写法更简洁:
Dataset$category_alt = Dataset$category_title Dataset$category_alt[Dataset$category_alt == "Shows"] <- "Other" Dataset$category_alt[Dataset$category_alt == "Nonprofits & Activism"] <- "Other"
方法3:批量替换简化写法
如果要替换的取值较多,可以用%in%合并判断条件,减少重复代码:
Dataset$category_alt = Dataset$category_title Dataset$category_alt[Dataset$category_alt %in% c("Shows", "Nonprofits & Activism")] <- "Other"
内容的提问来源于stack exchange,提问作者Mikez
相关产品推荐
相关产品推荐

