Почему функция вставки внутри оператора выбора подмножества вызывает недопустимый аргумент для ошибки унарного оператора? - PullRequest
1 голос
/ 20 мая 2019

У меня есть несколько столбцов, которые мне нужно удалить, которые начинаются с одного и того же префикса, например доход_2018, доход_2017, доход 2016. То, что я хотел сделать, это указать переменную в начале моего кода - current_year. Если для current_year установлено значение 2018, я бы хотел убрать этот столбец и столбцы предыдущих двух лет (доход_2018, доход_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 ("доход_",: неверный аргумент для унарного оператора

1 Ответ

4 голосов
/ 20 мая 2019

Вместо - мы можем использовать setdiff

subset(df, select = setdiff(names(df), nm1))

, где

'nm1' - имена столбцов, созданные paste

nm1 <- paste0("income_",  current_year - (0:3))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...