Próbuję napisać niestandardową funkcję, która obliczy nową zmienną na podstawie wartości z predefiniowanego wektora zmiennych (np. Wektor_heavy), a następnie nazwać nową zmienną na podstawie argumentu dostarczone do funkcji (np. custom_name).Nazywanie nowej zmiennej na podstawie zakrycia
To zmienne nazywanie jest miejscem, w którym moje umiejętności przygniatające mnie zawiodły. Każda pomoc jest bardzo doceniana.
library(tidyverse)
vector_heavy <- quos(disp, wt, cyl)
cv_compute <- function(data, cv_name, cv_vector){
cv_name <- enquo(cv_name)
data %>%
rowwise() %>%
mutate(!!cv_name = mean(c(!!!cv_vector), na.rm = TRUE)) %>%
ungroup()
}
d <- cv_compute(mtcars, cv_name = custom_name, cv_vector = vector_heavy)
Mój komunikat brzmi:
Error: unexpected '=' in:
" rowwise() %>%
mutate(!!cv_name ="
Zdejmowanie !!
mutate()
przed cv_name
w terminie spowoduje funkcji, która oblicza nową zmienną o nazwie cv_name
dosłownie, a ignorując custom_name
podaję jako argument.
cv_compute <- function(data, cv_name, cv_vector){
cv_name <- enquo(cv_name)
data %>%
rowwise() %>%
mutate(cv_name = mean(c(!!!cv_vector), na.rm = TRUE)) %>%
ungroup()
}
Jak mogę uzyskać tę funkcję wykorzystać custom_name
I dostarczyć jako argument dla cv_name
?
piękne rozwiązanie dziękuję! – Joe