我使用R.聚合函數,我可以得到彙總日期和ID很容易像這樣每列的方式聚集一個數據幀多於一個類型:合計數據幀由R中
aggregate(dataframe, by=list(dataframe$date, dataframe$id), FUN=mean, na.rm=TRUE)
哪有我彙總了一些列作爲手段和其他作爲和?
我使用R.聚合函數,我可以得到彙總日期和ID很容易像這樣每列的方式聚集一個數據幀多於一個類型:合計數據幀由R中
aggregate(dataframe, by=list(dataframe$date, dataframe$id), FUN=mean, na.rm=TRUE)
哪有我彙總了一些列作爲手段和其他作爲和?
使用summaryBy
功能從doBy
包可以幫助在那裏你可以提供多種功能:
require(doBy)
summaryBy(list("date", "id"), data = dataframe, FUN = c(mean, sum), na.rm=TRUE)
如果你想具體列有特定的功能,data.table
包可能使它成爲最容易。
require(data.table)
dt <- data.table(data.frame)
# set "V1" and "V2" ... "VX" to whichever columns you are interested in
dt.out <- dt[, list(s.v1=sum(V1), m.v2=mean(V2)),
by=c("date", "id")]
這看起來很有趣...但是我們如何指定哪個列獲取哪個函數? – Cybernetic 2014-09-25 20:10:32
@Cybernetic,你可以使用'data.table'包來做到這一點。 – cdeterman 2014-09-25 20:20:04
這工作完美。謝謝。 – Cybernetic 2014-09-25 20:44:54
使用你的代碼,一個直接的方法是
res1 <- aggregate(dataframe, by=list(dataframe$date, dataframe$id), FUN=mean, na.rm=TRUE)
和
res2 <- aggregate(dataframe, by=list(dataframe$date, dataframe$id), FUN=sum, na.rm=TRUE)
然後
res <- cbind(res1,res2)
現在資源包含均值和結果,你可以選擇wha你需要的專欄。
使用兩個不同的調用。 '聚合'將相同的功能應用於每個非組列。或者使用'split'和'lapply'自定義函數。 SO上必須有大量的工作實例,但沒有使用這種策略。 – 2014-09-25 20:15:53