按组划分的因子水平百分比(R)
我试图计算一组中某个因素的不同水平的百分比 我有嵌套数据,希望看到每个国家的学校百分比是私立学校(2级系数) 然而,我不知道如何做到这一点按组划分的因子水平百分比(R),r,dplyr,aggregate,data-wrangling,R,Dplyr,Aggregate,Data Wrangling,我试图计算一组中某个因素的不同水平的百分比 我有嵌套数据,希望看到每个国家的学校百分比是私立学校(2级系数) 然而,我不知道如何做到这一点 # my data: CNT <- c("A", "A", "A", "A", "A", "B", "B", "B", "C", "C", "C
# my data:
CNT <- c("A", "A", "A", "A", "A", "B", "B", "B", "C", "C", "C", "C", "C", "C", "D", "D",
"D", "D", "D", "D")
SCHOOL <- c(1:5, 1:3, 1:6, 1:6)
FACTOR <- as.factor(c(1,2,1,2,1,1,1,2,1,2,2,2,1,1,1,1,1,1,1,1))
mydata <- data.frame(CNT, SCHOOL, FACTOR)
head(mydata)
#我的数据:
CNT只需按CNTCNT
对数据进行分组,然后对分组进行汇总,以计算您拥有的FACTOR==1
的实例数与该组内观察的总数(n()
)
只需按CNT
对数据进行分组,然后对分组进行汇总,以计算您拥有的FACTOR==1
的实例数与该组内观察的总数(n()
)
另一种解决方案(使用base-R):
另一种解决方案(使用base-R):
这在我的示例中起作用,但在我的数据集上出现了一个严重错误n()
只能在dplyr谓词中使用。还有一些我不理解的回溯,这意味着你不能在dplyr
函数之外使用mutate
或summary
。由于您将问题标记为dplyr
我希望您能够处理数据dplyr样式:)我通常是这样,但我并不了解所有内容,我只是边走边学,以前从未遇到过这种问题。谢谢你的解释!这在我的示例中起作用,但在我的数据集上出现了一个严重错误n()
只能在dplyr谓词中使用。还有一些我不理解的回溯,这意味着你不能在dplyr
函数之外使用mutate
或summary
。由于您将问题标记为dplyr
我希望您能够处理数据dplyr样式:)我通常是这样,但我并不了解所有内容,我只是边走边学,以前从未遇到过这种问题。谢谢你的解释!我想你也可以参考上一篇文章,找到一个更一般的答案,用另一种方法计算分组df中的相对频率:mydata%>%count(CNT,FACTOR)%%>%group_by(CNT)%%>%mutate(n=n/sum(n))
我想你也可以参考上一篇文章,找到一个更一般的答案,用另一种方法计算分组df中的相对频率:mydata%>%count(CNT,FACTOR)%%>%groupby(CNT)%%>%mutate(n=n/sum(n))
library(dplyr)
mydata %>%
group_by(CNT) %>%
summarise(
priv_perc = sum(FACTOR == 1, na.rm=T) / n()
)
prop.table(table(mydata$CNT, mydata$FACTOR), margin = 1)
1 2
A 0.6000000 0.4000000
B 0.6666667 0.3333333
C 0.5000000 0.5000000
D 1.0000000 0.0000000