Давайте проиллюстрируем проблему на знаменитом наборе данных iris
. Мне нужно применить выбранную функцию по строкам, но только к выбранным столбцам. Пример выглядит следующим образом:
library(tidyverse)
iris %>%
mutate_at(.funs = scale, .vars = vars(-c(Species))) %>%
rowwise() %>%
mutate(my_mean=mean(c(Sepal.Length, Sepal.Width, Petal.Length, Petal.Width)))
Итак, сначала я масштабирую все переменные, кроме Species
, а затем вычисляю среднее значение по строкам для всех четырех числовых переменных. Однако в реальном наборе данных у меня более 100 числовых переменных, и мне интересно, как убедить R автоматически включать все переменные, кроме выбранной (например, Species
в данном примере). Я просматриваю решения на SO (например, это), но все примеры явно ссылаться на имена столбцов. Любые указатели очень приветствуются.
РЕДАКТИРОВАТЬ: после некоторого манипулирования вот мое решение:
iris %>%
as_tibble() %>%
mutate_at(.funs = scale, .vars = vars(-c(Species))) %>%
transmute(Species, row_mean = rowMeans(select(., -Species)))
rowMeans(scale(iris[-grep("Species", names(iris))]))
. - person lmo   schedule 03.10.2017rowMeans()
ко всем столбцам, кроме одного? например,dplyr::select(-Species) %>% dplyr::mutate(my_mean=rowMeans(.))
? - person juan   schedule 03.10.2017