R语言删除数据框列报错invalid argument to unary operator 求解决方案
解决R中删除数据框指定列的报错问题
你遇到的invalid argument to unary operator错误,是因为subset()函数的select参数不支持-c("列名")这种直接对字符向量取负的语法。以下是几种可行的替代方案:
方案1:通过列索引删除
直接指定要删除的列的位置(第1列和第3列):
# 基础R原生写法 df <- df[, -c(1, 3)] # 或结合subset函数使用索引 df <- subset(df, select = -c(1, 3))
方案2:在subset中通过列名匹配排除
如果想保留列名的操作方式,用%in%和!筛选需要保留的列:
df <- subset(df, select = !names(df) %in% c("01.2020", "03.2020"))
方案3:使用dplyr包的select函数(语法更直观)
如果你习惯tidyverse风格,安装并加载dplyr后可以这样写:
library(dplyr) df <- df %>% select(-c("01.2020", "03.2020"))
内容的提问来源于stack exchange,提问作者Bella_18
相关产品推荐
相关产品推荐

