Funkcja spreadu tidyr przyjmuje tylko nazwy kolumn bez cudzysłowów. Czy istnieje sposób mogę przekazać w zmiennej, która zawiera nazwę kolumny dla npW jaki sposób funkcja rozprzestrzeniania tidyr może przyjmować zmienną jako wybrana kolumna
# example using gather()
library("tidyr")
dummy.data <- data.frame("a" = letters[1:25], "B" = LETTERS[1:5], "x" = c(1:25))
dummy.data
var = "x"
dummy.data %>% gather(key, value, var)
To daje błąd
Error: All select() inputs must resolve to integer column positions.
The following do not:
* var
co jest rozwiązywane za pomocą funkcji dopasowania, która daje wymaganą kolumna pozycję
dummy.data %>% gather(key, value, match(var, names(.)))
Ale to samo podejście nie działa w przypadku funkcji rozprzestrzeniania się
dummy.data %>% spread(a, match(var, names(.)))
Error: Invalid column specification
Funkcje gromadzenia i rozprzestrzeniania mają różne specyfikacje kolumn. zbierać zajmuje indeks kolumny natomiast spread nie wspomina, co chce
zauważ, że spread akceptuje tylko jedną kolumnę wartości. Jeśli chcesz rozłożyć wiele kolumn, powinieneś zmutować (wkleić) je w jeden, a następnie rozsunąć. – dalloliogm
Może chcesz 'spread_'? Bierze jednak ciągi znaków zarówno dla kolumny klucza, jak i wartości. – aosmith