如何将plyr包代码的ddply实现为以下COLLIAU exp数据集的dplyr。任何帮助都将受到感谢
在gcookbook库中有一个名为colla\u exp的数据集。在这个数据集中,我想计算各组中的权重比例(按日期分组) 在我的数据集中有6个样本,每个样本包含日期和重量。 有3个日期d16、d20和d21,每个日期行都有一个权重值。因此,我的目标是按日期对数据进行分组,并计算相对比例权重。例如,组为(d16,d16),(d20,d20)和(d21,d21),每组的相对重量比例应加起来为100。假设d16=40%和d16=60%,那么组总数=100%,依此类推 以下代码为“日期”的plyr包装拆分,并计算各组的重量比例。它工作起来很有魅力,但我尝试使用dplyr包实现相同的代码,但没有得到相同的结果如何将plyr包代码的ddply实现为以下COLLIAU exp数据集的dplyr。任何帮助都将受到感谢,r,dplyr,plyr,R,Dplyr,Plyr,在gcookbook库中有一个名为colla\u exp的数据集。在这个数据集中,我想计算各组中的权重比例(按日期分组) 在我的数据集中有6个样本,每个样本包含日期和重量。 有3个日期d16、d20和d21,每个日期行都有一个权重值。因此,我的目标是按日期对数据进行分组,并计算相对比例权重。例如,组为(d16,d16),(d20,d20)和(d21,d21),每组的相对重量比例应加起来为100。假设d16=40%和d16=60%,那么组总数=100%,依此类推 以下代码为“日期”的plyr包装拆
### This is a R related problem.
### I'm using windows 10
### Latest R version and Packages
library(plyr)
library(dplyr)
library(gcookbook)
我在dplyr中使用了下面的代码,但是得到了非分组比例,这不是日期分组比例
library(plyr)
ddply(cabbage_exp, "Date", transform,
percent_weight = Weight / (Weight)*100)
问题。
如何实现dplyr代码以获得相同的结果。我已经试过使用group_by,但它没有将日期分组在一起。对此问题的任何帮助都将不胜感激。您可以使用
解组功能
library(dplyr)
cabbage_exp %>%
group_by(Date) %>%
mutate(percent = Weight/sum(Weight))
生成以下输出
cabbage_exp %>%
group_by(Date) %>%
mutate(Wt = sum(Weight)) %>%
ungroup %>%
mutate(percent_weight = Weight / Wt * 100) %>%
arrange(Date) %>%
dplyr::select(-Wt)
#一个tible:6 x 7
品种日期重量sd n se百分比重量
1 c39 d16 3.18 0.9566144 10 0.30250803 58.45588
2 c52 d16 2.26 0.445215 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
我提供的代码就是这样做的。您可能希望运行它,并将其与您声明的所需的plyr
结果进行比较。我添加了一个按日期排序并删除了中间项。您可能想检查您的编码-我编辑了我的答案以显示结果。谢谢您,先生,您的答案是100%正确的。我的代码可能有问题。谢谢你给我宝贵的时间。我已经重新启动了我的R,现在它显示了相同的结果。非常感谢,先生。
# 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