如何将函数应用于data.frame的子集而不手动创建子集?
假设我有一个data.frame如何将函数应用于data.frame的子集而不手动创建子集?,r,dataframe,aggregate,apply,R,Dataframe,Aggregate,Apply,假设我有一个data.frame Color Animal Size Green Frog 2 Red Frog 5 Green Frog 1 Red Frog 6 如果我要应用函数mean,我想得到一个 Color Animal AverageSize Green Frog 1.5 Red Frog 5.5 感谢基本R中最直接的方法是使用聚合: > aggregate(Size ~ ., mydf, mean) Color Animal Size 1 Gree
Color Animal Size
Green Frog 2
Red Frog 5
Green Frog 1
Red Frog 6
如果我要应用函数mean,我想得到一个
Color Animal AverageSize
Green Frog 1.5
Red Frog 5.5
感谢基本R中最直接的方法是使用
聚合
:
> aggregate(Size ~ ., mydf, mean)
Color Animal Size
1 Green Frog 1.5
2 Red Frog 5.5
其中,“.”表示所有其他分组列,而“Size”是要聚合的列
其他选择包括:
library(data.table)
as.data.table(mydf)[, mean(Size), by = list(Color, Animal)]
或:
(在许多其他方面中)聚合(大小~颜色+动物,数据=数据,平均值)
在处理海量数据时,“dplyr”和“data.table”的效率高得惊人
library(dplyr)
mydf %>%
group_by(Color, Animal) %>%
summarise(Size = mean(Size))