R总结group_by结果

时间:2017-11-24 09:23:42

标签: r

我有一个数据" dat_KOR14_16"

为什么这个函数有不同的输出?

我正在努力解决不正确的结果。

a <-summarize(group_by(dat_KOR14_16,SIGUN,LCLASSNAME,MCLASSNAME),AVG_PRICE=mean(AVG_
PRICE))

a <- summarize(group_by(a,LCLASSNAME,MCLASSNAME),AVG_PRICE=mean(AVG_PRICE))
a
# A tibble: 505 x 3
# Groups:   LCLASSNAME [?]
   LCLASSNAME MCLASSNAME  AVG_PRICE
        <chr>      <chr>      <dbl>
 1       농업       가랏   4187.569
 2       농업   가오리포 101000.000
 3       농업   가죽나물   9875.621
 4       농업       가지   9246.471
 5       농업 가지나무순   5815.374
 6       농업     갈치포  56231.905
 7       농업       감귤  12722.828
 8       농업       감자  14765.841
 9       농업       감초  34916.667
10       농업         갓   5183.005
# ... with 495 more rows
> a <-summarize(group_by(dat_KOR14_16,LCLASSNAME,MCLASSNAME),AVG_PRICE=mean(AVG_PRICE))
> a
# A tibble: 505 x 3
# Groups:   LCLASSNAME [?]
   LCLASSNAME MCLASSNAME  AVG_PRICE
        <chr>      <chr>      <dbl>
 1       농업       가랏   3938.466
 2       농업   가오리포 101000.000
 3       농업   가죽나물   8957.503
 4       농업       가지  10400.846
 5       농업 가지나무순   2005.054
 6       농업     갈치포  40501.212
 7       농업       감귤  12928.582
 8       농업       감자  16416.196
 9       농업       감초  41642.857
10       농업         갓   7333.404
# ... with 495 more rows

我必须通过&#34; MCLASSNAME&#34;制作average_Price。正确地

Orgin数据就像这样,

DATES AVG_PRICE LCLASSNAME MCLASSNAME      SIDO     SIGUN
1 20140425     30420       농업     양상추   서울   중구

我已经通过SIGUN制作了2维并获得了平均值。

但它的值不正确

所以我需要找出使用汇总函数的重要事项。

No  LCLASSNAME  MCLASSNAME  TOTAL   SIDO1   SIGUN1  SIGUN2  SIGUN3  SIGUN4  SIGUN5  SIGUN6  SIGUN7  SIGUN8  SIGUN9  SIGUN10 SIGUN11 SIGUN12 SIGUN13 SIGUN14 SIGUN15 SIGUN16 SIGUN17 SIGUN18
1       농업   가죽나물  함양군    3393.333  익산시        7550      0      0      0  24025   3000      0   4000      0   7550      0      0
2       농업   가죽나물  함양군    3393.333  남원시       24025      0      0      0  24025   3000      0   4000      0   7550      0      0

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

我不确定你正在寻找什么,或者你需要分组的变量,但我会说在附近......

WindowFunction

答案 1 :(得分:0)

正如akrun所说,如果管道运营商(%&gt;%),它会更容易。

管道运算符(%&gt;%)将参数传递给下一个函数。我在datacamp站点中找到了此示例,以便您了解%&gt;%的作用。 这两行代码也是如此:

pi %>% sin %>% cos

cos(sin(pi))   

我重写了你的代码,但我想我写的你可以看到差异。

a <- dat_KOR14_16 %>% 
        group_by(SIGUN,LCLASSNAME,MCLASSNAME) %>% 
          summarize(AVG_PRICE=mean(AVG_PRICE))
a <- a %>% 
        group_by(LCLASSNAME,MCLASSNAME) %>% 
            summarize(AVG_PRICE=mean(AVG_PRICE))

a <- dat_KOR14_16 %>% 
        group_by(LCLASSNAME,MCLASSNAME) %>% 
            summarize(AVG_PRICE=mean(AVG_PRICE))