查找R

时间:2017-09-01 09:49:22

标签: r sparkr

我有一个Spark Dataframe,下面的结构存在于R: -

Var1-----    Var 2-----   Var 3 -------      Var 4-----        Group  
98.64----   32.35----   11906.91--  08.65-----   A  
94.83----   29.36----   17287.57--  06.01-----   B  
99.94----   35.36----   30411.85--  08.82-----   C  
99.45----   34.58----   18267.26--  10.09-----   C  
99.93----   36.64----   23560.04--  07.34-----   A  
99.66----   48.81----   42076.44--  08.44-----   B  
99.96----   27.38----   18474.01--  11.39-----   A  
97.49----   25.28----   14615.50--  06.60-----   B  
98.98----   32.50----   10282.90--  07.71-----   C  
99.57----   31.54----   12725.56--  06.17-----   C  
99.91----   26.46----   10990.13--  06.17-----   C  

这是我的代表性数据集,记录数量非常巨大。同样,列数也超过200个。

有人可以帮助我使用以下结果集。对于R中的本地数据帧,使用DPLYR执行此操作非常简单。但是在Spark Dataframe上工作似乎

Group   Average_Var1    Average_Var2    Average_Var3    Average_Var4  
A   -----    99.51  ------------    32.13   ----------    17980.34  -----    9.13  
B   -----    97.32  ------------    34.42   ----------    24659.83  -----    6.89  
C   -----    99.57  ------------    32.10   ----------    16535.54  -----    7.78  

3 个答案:

答案 0 :(得分:1)

使用sparklyr试试这个:

df%>% group_by(Group)%>% summarize_all(.funs = mean)

答案 1 :(得分:0)

> aggregate(df[, 1:4], list(df$Group), mean)
  Group.1     Var1    Var.2    Var.3    Var.4
1       A 99.51612 32.13070 17980.34 9.130542
2       B 97.32882 34.48923 24659.84 6.874534
3       C 99.57542 32.10916 16535.54 7.787882

答案 2 :(得分:0)

基本函数by可与colMeans一起使用,如下所示:

by(df[, 1:4], df[,"Group"], colMeans)

输出:

df[, "Group"]: A
        Var1         Var2         Var3         Var4 
   99.516118    32.130696 17980.341453     9.130542 
----------------------------------------------------------- 
df[, "Group"]: B
        Var1         Var2         Var3         Var4 
   97.328825    34.489235 24659.840630     6.874534 
----------------------------------------------------------- 
df[, "Group"]: C
        Var1         Var2         Var3         Var4 
   99.575422    32.109159 16535.543470     7.787882