【发布时间】:2019-09-18 18:37:57
【问题描述】:
我有以下数据:
set.seed(789)
df_1 = data.frame(a = 22, b = 24, c = rnorm(10))
df_2 = data.frame(a = 44, b = 24, c = rnorm(10))
df_3 = data.frame(a = 33, b = 99, c = rnorm(10))
df_all = rbind(df_1, df_2, df_3)
我需要将df_all按a和b列分组,然后根据c列找到第50个分位数。
这可以单独完成,对于每个df,如下:
df_1_q = quantile(df_1$c, probs = 0.50)
df_2_q = quantile(df_2$c, probs = 0.50)
df_3_q = quantile(df_3$c, probs = 0.50)
但是我真正的df_all 比这个大。
更一般地说,我如何按行对data.frame 进行分组并应用给定函数?
谢谢
【问题讨论】:
-
或使用
aggregate(c ~ a + b, df_all, median)
标签: r dataframe group-by rows quantile