Tôi có thể sử dụng aggregate()
với nhiều chức năng hơn theo cách sao cho tổng hợp được lưu trữ dưới dạng các cột riêng biệt và không phải là một phần của ma trận không? Tôi muốn có khung dữ liệu với các cột Group.1, cyl.1, cyl.2
, không phải Group.1, cyl
.Tổng hợp() với nhiều chức năng hơn -
# Only one function
> aggdata <-aggregate(mtcars["cyl"], by=list(vs), FUN=mean, na.rm=TRUE)
> aggdata
Group.1 cyl
1 0 7.444444
2 1 4.571429
> str(aggdata)
'data.frame': 2 obs. of 2 variables:
$ Group.1: num 0 1
$ cyl : num 7.44 4.57
>
# Two functions
> aggdata <-aggregate(mtcars["cyl"], by=list(cyl), FUN=function(x) c(length(x),mean(x)))
> aggdata
Group.1 cyl.1 cyl.2
1 4 11 4
2 6 7 6
3 8 14 8
> str(aggdata)
'data.frame': 3 obs. of 2 variables:
$ Group.1: num 4 6 8
$ cyl : num [1:3, 1:2] 11 7 14 4 6 8
> aggdata$cyl
[,1] [,2]
[1,] 11 4
[2,] 7 6
[3,] 14 8
+1. Tôi nghĩ về việc chia sẻ tùy chọn này, bởi vì tôi thích cú pháp của nó tốt hơn nhiều, nhưng nó không giải quyết câu hỏi thực sự về việc phải làm gì với kết quả của 'aggregate', mà tôi đã gặp trước đó và thấy hơi khó xử lý . – A5C1D2H2I1M1N2O1R2T1
@AnandaMahto Tôi đồng ý rằng nó không trả lời câu hỏi (và theo như câu hỏi của bạn là câu trả lời cho nó), nhưng về cơ bản tôi nghĩ rằng OP đã đặt câu hỏi sai :) – eddi
Tôi chỉ tìm thấy [nguồn gốc của tôi answer] (http://stackoverflow.com/a/14759569/1270695). Có một số câu hỏi khác tương tự như vậy, nhưng đây là nơi tôi đã học cách tiếp cận 'do.call (data.frame, ...)'. – A5C1D2H2I1M1N2O1R2T1