我需要删除几列以相同前缀开头的列,例如income_2018,income_2017、2016年收入。我要做的是在代码的开头指定一个变量-current_year。当current_year设置为2018时,我也想删除该字段和前两年的列(income_2018,income_2017、2016收入)。
我将子集与粘贴功能结合使用来否定地选择列并将其删除,但是粘贴导致“对一元运算符无效的参数”错误。
current_year = 2018
df<- subset(df,select =-c(paste("income_",current_year,sep = ""),paste("income_",current_year-1,sep = ""),paste("income_",current_year-2,sep = ""),paste("income_",current_year-3,sep = "")))
-c(someothercol,someothercol2,someothercol3,paste(“ income_”,: 一元运算符的参数无效
答案 0 :(得分:4)
我们可以使用-
代替setdiff
subset(df, select = setdiff(names(df), nm1))
其中
'nm1'是paste
nm1 <- paste0("income_", current_year - (0:3))