В dplyr, как удалить и переименовать столбцы, которые не существуют, управлять всеми именами и называть новую переменную с помощью строки?
Как упростить или выполнить следующие операции с помощью dplyr
:
-
Запустите функцию для всех имен data.frame
, например mutate_each(funs())
для значений, например.
names(iris) <- make.names(names(iris))
-
Удалить столбцы, которые НЕ существуют (т.е. ничего не удалять), например.
iris %>% select(-matches("Width")) # ok
iris %>% select(-matches("X")) # returns empty data.frame, why?
-
Добавить новый столбец по имени (строка), например
iris %>% mutate_("newcol" = 0) # ok
x <- "newcol"
iris %>% mutate_(x = 0) # adds a column with name "x" instead of "newcol"
-
Переименуйте имя_файла data.frame, который не существует
names(iris)[names(iris)=="X"] <- "Y"
iris %>% rename(sl=Sepal.Length) # ok
iris %>% rename(Y=X) # error, instead of no change
Ответы
Ответ 1
- Я бы использовал setNames для этого:
iris %>% setNames(make.names(names(.)))
- Включить все() в качестве аргумента для выбора:
iris %>% select(-matches("Width"), everything())
iris %>% select(-matches("X"), everything())
- По моему мнению, нет другого ярлыка, чем явное обозначение строки, как вы уже делали:
iris %>% mutate_("newcol" = 0)