首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何实现以下cabbage_exp数据集的plyr包代码的dplyr。任何帮助都会成为学徒

如何实现以下cabbage_exp数据集的plyr包代码的dplyr。任何帮助都会成为学徒
EN

Stack Overflow用户
提问于 2017-08-29 07:25:44
回答 1查看 182关注 0票数 0
代码语言:javascript
复制
### This is a R related problem.
### I'm using windows 10
### Latest R version and Packages

library(plyr)

library(dplyr)

library(gcookbook)

在库中,有一个名为cabbage_exp的数据集。在这个数据集中,我想计算每个组中权重的比例(按日期分组)。

在我的数据集中,有6个样本,每个样本都包含日期和权重。有3个日期d16、d20和d21,每个日期行都有一个权重值。因此,我的目标是按日期对数据进行分组,并计算相对比例权重。例如,组是(d16,d16),(d20,d20)和(d21,d21),每个组的相对重量比例应该加到100。假设d16 = 40%,d16 = 60%,那么组总数=100%,依此类推。

下面的代码plyr包分裂在“日期”和计算权重的比例在每一组。它工作起来很有魅力,但我尝试使用dplyr包实现相同的代码,但没有得到相同的结果。

代码语言:javascript
复制
library(plyr)
ddply(cabbage_exp, "Date", transform,
      percent_weight = Weight / (Weight)*100)

ddply的最终结果(单击此处查看plyr代码结果的图像)

我在dplyr中使用了下面的代码,但是得到了未分组的比例,这不是按日期分组比例

代码语言:javascript
复制
library(dplyr)
cabbage_exp %>% 
  group_by(Date) %>% 
  mutate(percent = Weight/sum(Weight))

dplyr代码的最终结果(单击此处查看dplyr代码结果)

有个问题。

如何实现dplyr代码以获得相同的结果。我试过使用group_by,但它并没有将日期组合在一起。如果能在这个问题上提供任何帮助,我们将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-29 07:39:32

您可以使用ungroup函数。

代码语言:javascript
复制
cabbage_exp %>% 
    group_by(Date) %>% 
    mutate(Wt = sum(Weight)) %>% 
    ungroup %>% 
    mutate(percent_weight = Weight / Wt * 100) %>%
    arrange(Date) %>% 
    dplyr::select(-Wt)

产生以下输出

代码语言:javascript
复制
# A tibble: 6 x 7
  Cultivar   Date Weight        sd     n         se percent_weight
    <fctr> <fctr>  <dbl>     <dbl> <int>      <dbl>          <dbl>
1      c39    d16   3.18 0.9566144    10 0.30250803       58.45588
2      c52    d16   2.26 0.4452215    10 0.14079141       41.54412
3      c39    d20   2.80 0.2788867    10 0.08819171       47.37733
4      c52    d20   3.11 0.7908505    10 0.25008887       52.62267
5      c39    d21   2.74 0.9834181    10 0.31098410       65.08314
6      c52    d21   1.47 0.2110819    10 0.06674995       34.91686
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45933127

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档