在R语言中如何将数据框中的'rugby'修改为'tennis'?
解决方法
要将newsp数据框中name列的'rugby'修改为'tennis',可以用以下几种方式实现:
基础R写法
直接通过逻辑索引定位目标值并赋值:
# 定位name列中等于'rugby'的元素,替换为'tennis' newsp$name[newsp$name == 'rugby'] <- 'tennis'
tidyverse(dplyr)写法
如果你习惯使用tidyverse工具包,可通过mutate函数修改:
library(dplyr) newsp <- newsp %>% mutate(name = ifelse(name == 'rugby', 'tennis', name))
你之前代码的问题
你尝试的代码存在多处错误:
==是比较运算符,不是赋值符号,赋值需要用<-或=newsp["volly"]是按列名提取列,但volly是name列里的一个值,不是列名,这种写法根本无法定位到要修改的元素- 你要修改的是
rugby,但代码却针对volly,目标对象混淆了
内容的提问来源于stack exchange,提问作者Melissa Harris
相关产品推荐
相关产品推荐

