R 对每个变量使用不同的函数按组折叠数据帧
定义 我的数据没有因子,因此我将因子转换为字符:R 对每个变量使用不同的函数按组折叠数据帧,r,dataframe,collapse,data-manipulation,data-management,R,Dataframe,Collapse,Data Manipulation,Data Management,定义 我的数据没有因子,因此我将因子转换为字符: > df V1 V2 V3 V4 1 egg 1 20 a 2 egg 2 30 a 3 jap 3 50 b 4 jap 1 60 b plyr套餐将帮助您: > df.collapse V1 V2 V3 V4 1 egg 2 25 a 2 jap 3 55 b 因为R没有模式函数(可能),所以我放置了其他函数。 但实现模式功能很容易。plyr软件包将帮助您: > df.collapse
> df
V1 V2 V3 V4
1 egg 1 20 a
2 egg 2 30 a
3 jap 3 50 b
4 jap 1 60 b
plyr套餐将帮助您:
> df.collapse
V1 V2 V3 V4
1 egg 2 25 a
2 jap 3 55 b
因为R没有模式函数(可能),所以我放置了其他函数。
但实现模式功能很容易。plyr软件包将帮助您:
> df.collapse
V1 V2 V3 V4
1 egg 2 25 a
2 jap 3 55 b
因为R没有模式函数(可能),所以我放置了其他函数。
但是实现模式功能很容易。我建议使用
plyr
中的ddply
:
library(plyr)
ddply(df, .(V1), summarize, V2 = max(V2), V3 = mean(V3), V4 = toupper(V4)[1])
require(plyr)
ddply(df, .(V1), summarise, V2=max(V2), V3=mean(V3), V4=V4[1])
你可以用你想要的任何计算替换这些函数。您的V3列是非数字的,因此可能需要将其转换为数字,然后计算模式。现在,我只是为每个拆分返回第一行的V3值。或者如果您不想使用plyr
:
library(plyr)
ddply(df, .(V1), summarize, V2 = max(V2), V3 = mean(V3), V4 = toupper(V4)[1])
require(plyr)
ddply(df, .(V1), summarise, V2=max(V2), V3=mean(V3), V4=V4[1])
我建议使用
plyr
中的ddply
:
library(plyr)
ddply(df, .(V1), summarize, V2 = max(V2), V3 = mean(V3), V4 = toupper(V4)[1])
require(plyr)
ddply(df, .(V1), summarise, V2=max(V2), V3=mean(V3), V4=V4[1])
你可以用你想要的任何计算替换这些函数。您的V3列是非数字的,因此可能需要将其转换为数字,然后计算模式。现在,我只是为每个拆分返回第一行的V3值。或者如果您不想使用plyr
:
library(plyr)
ddply(df, .(V1), summarize, V2 = max(V2), V3 = mean(V3), V4 = toupper(V4)[1])
require(plyr)
ddply(df, .(V1), summarise, V2=max(V2), V3=mean(V3), V4=V4[1])
+1用于使用do.call的备选方案。我不知道这是好是坏,但很高兴知道还有其他选择。+1表示使用do.call的备选方案。我不知道这是好是坏,但很高兴知道还有其他选择。谢谢!简洁且非常有用+1谢谢!简洁且非常有用+1