Tôi có một khung dữ liệu, trả về 2 nhóm cho cùng một phút. Làm thế nào nó có thể được xử lý để đạt được sản lượng dự kiến của tôi?dplyr: Cách xử lý nhiều giá trị
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
")
tôi đã cố gắng mã dưới đây
final= df %>%
group_by(xxx,yyyy) %>%
summarise(Topcomp=Company[c(which(min(cnt)==cnt))])
Im nhận:
Error: expecting a single value
Tôi muốn có đầu ra như dưới đây.
xxx yyyy Topcomp
<int> <int> <fctr>
1 1 1 aaa,bbb
2 2 0 ddd
Các giải pháp linh hoạt nhất là một cột danh sách , nghĩa là 'df%>% group_by (xxx, yyyy)%>% tóm tắt (Topcomp = list (Công ty [cnt == min (cnt)]))', mặc dù họ thực hiện một chút để làm việc. – alistaire
Ngoài ra, bạn có thể cắt bỏ 'c' và' which' như tôi đã nhận xét dưới đây, vì chúng không làm gì ở đây cả. – alistaire