Muszę podsumować liczby łańcuchów, które przypisuję grupom, i wiem, że mogę to zrobić w dplyr/tidyr, ale brakuje mi czegoś.Używanie Tidyr/Dplyr do podsumowania liczby grup łańcuchów
Przykład zbioru danych:
Owner = c('bob','julia','cheryl','bob','julia','cheryl')
Day = c('Mon', 'Tue')
Locn = c('house','store','apartment','office','house','shop')
data <- data.frame(Owner, Day, Locn)
który wygląda następująco:
Owner Day Locn
1 bob Mon house
2 julia Tue store
3 cheryl Mon apartment
4 bob Tue office
5 julia Mon house
6 cheryl Tue shop
Chcę grupy wg nazwy i dzień, a następnie policzyć pogrupowane lokalizacje w kolumnach. W tym przykładzie chcę, aby "dom" i "mieszkanie" zostały dodane do kolumny zatytułowanej "Strona główna" i "sklep", "biuro" i "sklep", które mają być policzone w kolumnie "Praca".
Mój obecny kod (który nie działa):
grouped_locn <- data %>%
dplyr::arrange(Owner, Day) %>%
dplyr::group_by(Owner, Day) %>%
dplyr::summarize(Home = which(data$Locn %in% c('house', 'apartment')),
Work = which(data$Locn %in% c("store", "office", "apartment")))
mam tylko włączone moją obecną próbę etapie podsumować, aby pokazać w jaki sposób zostały zbliża go. Domu i pracy kod obecnie wraca wektorów liczby wierszy, które zawierają element z grupy (tj główna = 1 3 5)
Mam przeznaczony Wydajność:
Owner Day Home Work
1 bob Mon 1 0
2 bob Tue 0 1
3 julia Mon 1 0
4 julia Tue 0 1
5 cheryl Mon 1 0
6 cheryl Tue 0 1
W rzeczywistym zbiorze (30k + wiersze) istnieje wiele wartości Locna na właściciela na dzień, więc Liczby Dom i Praca mogą być liczbami innymi niż 1 i 0 (więc nie ma booleans).
Wielkie dzięki.
Hnn ... Byłem pewien, że próbowałem tego. Czy użycie funkcji $ Locn zamiast Locn po podsumowaniu zepsuło funkcję? Działa doskonale, dzięki. –
Chyba tak. 'Locn' respektuje grupę,' dane $ Locn' nie. – lukeA