如何从R语言dataframe中按列名删除多列?
如何在R中按列名删除dataframe的指定列?
正确实现方法
方法1:使用dplyr包的select函数
确保已加载dplyr包,执行以下代码即可删除目标列:
library(dplyr) economics_df <- economics_df %>% select(-c(`Series Code`, `Country Code`))
如果之前尝试失败,大概率是未提前加载dplyr包,导致管道符%>%和select函数无法被识别。
方法2:使用基础R语法
基础R中删除列时,无需给列名额外添加反引号包裹(你之前的错误是把反引号写进了字符串内容里),正确写法有两种:
# 方式A:用反引号直接引用带空格的列名 economics_df <- economics_df[, -c(`Series Code`, `Country Code`)] # 方式B:通过列名字符串匹配删除 economics_df <- economics_df[, -which(names(economics_df) %in% c("Series Code", "Country Code"))]
你之前的写法economics_df[-c("Series Code", "Country Code")]错误在于,把列名的反引号作为了字符串的一部分,而实际列名本身是Series Code(不带外层反引号),导致R无法匹配到对应列。
验证结果
执行删除操作后,可通过names(economics_df)查看剩余列名,确认Series Code和Country Code已被移除。
内容的提问来源于stack exchange,提问作者Joe
相关产品推荐
相关产品推荐

