Mam ramkę danych, która zwraca 2 grupy na tę samą min. Jak można go obsłużyć, aby osiągnąć oczekiwany wynik?dplyr: Obsługa wielu wartości
df<- read.table(header=TRUE,
text="
Company xxx yyyy zzzz cnt
abc 1 1 1 20
aaa 1 1 2 3
bbb 1 1 1 3
ddd 2 0 2 100
")
Próbowałem poniżej kod
final= df %>%
group_by(xxx,yyyy) %>%
summarise(Topcomp=Company[c(which(min(cnt)==cnt))])
Im uzyskiwanie:
Error: expecting a single value
chcę mieć wyjście jak poniżej.
xxx yyyy Topcomp
<int> <int> <fctr>
1 1 1 aaa,bbb
2 2 0 ddd
najbardziej elastyczne rozwiązania jest kolumna lista , tzn. 'df%>% group_by (xxx, yyyy)%>% summary (Topcomp = list (Company [cnt == min (cnt)]))', choć wymagają one trochę praktyki do pracy. – alistaire
Możesz także odciąć "c" i "co", tak jak to skomentowałem poniżej, ponieważ nic tutaj nie robią. – alistaire