Предположим, я хочу создать среднюю переменную в данном кадре данных на основе двух векторов, один из которых задает имена переменных, которые нужно использовать, а другой - веса, по которым эти переменные должны переходить в среднюю переменную:
vars <- c("a", "b", "c","d"))
weights <- c(0.5, 0.7, 0.8, 0.2))
df <- data.frame(cbind(c(1,4,5,7), c(2,3,7,5), c(1,1,2,3),
c(4,5,3,3), c(3,2,2,1), c(5,5,7,1)))
colnames(df) <- c("a","b","c","d","e","f")
Как я могу использовать dplyr::mutate()
для создания средней переменной, которая использует vars
и weights
для вычисления балльной оценки по ряду?mutate()
должен специально использовать переменные, предоставленные vars
Результат должен в основном делать следующее:
df <- df %>%
rowwise() %>%
mutate(comp = mean(c(vars[1]*weights[1], vars[2]*weights[2], ...)))
Записано:
df2 <- df %>%
rowwise() %>%
mutate(comp = mean(c(0.5*a, 0.7*b, 0.8*c, 0.2*d)))
Я не могу понять, какСделайте это, потому что, хотя vars
содержит точные имена переменных, которые я хочу использовать для mutate в моем df
, внутри vars
они являются строками.Как я мог mutate()
понять, что строки vars
содержат ссылки на столбцы в моем df
?Если вам известна другая процедура, не использующая mutate()
, то это тоже хорошо.Спасибо!