gpt4 book ai didi

r - 计算数据框子集中的比例

转载 作者:行者123 更新时间:2023-12-04 11:09:14 26 4
gpt4 key购买 nike

我正在尝试获取数据框子集中的比例。例如,在这个虚构的数据框中:

DF<-data.frame(category1=rep(c("A","B"),each=9),
category2=rep(rep(LETTERS[24:26],each=3),2),
animal=rep(c("dog","cat","mouse"),6),number=sample(18))

我想计算三种动物每一种的比例 category1来自 category2组合(例如,在所有既是“A”又是“X”的动物中,狗的比例是多少?)。与 prop.table在数据框的第 4 列上,我可以得到每行占总“数字”列的比例,但我还没有找到基于类别 1 和 2 的子集的方法。我也尝试拆分数据来自 category1category2使用这个:
splitDF<-split(DF,list(DF$category1,DF$category2))

我希望我可以用 prop.table 应用一个函数获得每个分组中每只动物的比例,但我无法获得 prop.table工作,因为我似乎无法指定将函数应用于拆分组内的哪一列数据。有没有人有任何提示?也许这可以通过 plyr 实现或类似的东西?我在帮助论坛中找不到任何关于在数据子集中获取比例的方法。

最佳答案

您可以使用功能 ddply()来自图书馆 plyr计算每个组合的比例,然后将新列添加到数据框中。

 library(plyr)     
DF<-ddply(DF,.(category1,category2),transform,prop=number/sum(number))
DF
category1 category2 animal number prop
1 A X dog 17 0.44736842
2 A X cat 3 0.07894737
3 A X mouse 18 0.47368421
4 A Y dog 2 0.14285714

关于r - 计算数据框子集中的比例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15009011/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com