如何在R

时间:2016-11-30 08:47:35

标签: r dplyr plyr summarize

我正在尝试通过对一列(F1)进行分组并获取其他列的平均值来汇总数据集,除了其他列在数字和因子级别之间分配。我可以使用ddply来汇总F2数值但不确定如何对F3中的因子级别执行相同的操作。我试图逐组捕获mos重复因子水平,但这不起作用。

可重现的示例

library(plyr)
set.seed(37)
df<-data.frame("F1"=rep(LETTERS[1:5],each = 3),
               "F2"= 1:15,
               "F3"= sample(c("Yes","No"), 15, replace=TRUE))
df2 <- ddply(df,~F1,summarise,
                     mF2=mean(F2),
                     mF3=tail(names(sort(table(df$F3))), 1))
> df
   F1 F2  F3
1   A  1  No
2   A  2 Yes
3   A  3  No
4   B  4 Yes
5   B  5  No
6   B  6  No
7   C  7 Yes
8   C  8 Yes
9   C  9 Yes
10  D 10 Yes
11  D 11 Yes
12  D 12  No
13  E 13 Yes
14  E 14 Yes
15  E 15  No
> df2
  F1 mF2 mF3
1  A   2 Yes
2  B   5 Yes
3  C   8 Yes
4  D  11 Yes
5  E  14 Yes

相反,df2应如下所示:

> df2
  F1 mF2 mF3
1  A   2 No
2  B   5 No
3  C   8 Yes
4  D  11 Yes
5  E  14 Yes

如果显示如何,我会热衷于尝试使用dplyr或其他方法。

1 个答案:

答案 0 :(得分:-1)

我们可以在dplyr

中使用类似的选项
library(dplyr)
df %>% 
  group_by(F1) %>% 
  summarise(mF2 = mean(F2), mF3 = tail(names(sort(table(F3))),1))