У меня есть dataframe, который возвращает 2 группы за тот же минимум. Как его можно обработать, чтобы достичь ожидаемого результата?dplyr: Как обрабатывать несколько значений
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
")
я попытался ниже код
final= df %>%
group_by(xxx,yyyy) %>%
summarise(Topcomp=Company[c(which(min(cnt)==cnt))])
Im получение:
Error: expecting a single value
Я хочу иметь выход, как показано ниже.
xxx yyyy Topcomp
<int> <int> <fctr>
1 1 1 aaa,bbb
2 2 0 ddd
Наиболее гибким решения представляет собой столбец списка , т. е. 'df%>% group_by (xxx, yyyy)%>% summary (Topcomp = list (Company [cnt == min (cnt)]))', хотя они занимаются некоторой практикой для работы. – alistaire
Кроме того, вы можете нарезать 'c' и' which', как я прокомментировал ниже, так как они здесь ничего не делают. – alistaire