R 根据列中的变量名创建组并获取计数
我已经看到了一些收集数据和按组创建计数的方法,但我想做的事情有点复杂。。。 我有一个类似于以下的数据集:R 根据列中的变量名创建组并获取计数,r,loops,count,dplyr,pipe,R,Loops,Count,Dplyr,Pipe,我已经看到了一些收集数据和按组创建计数的方法,但我想做的事情有点复杂。。。 我有一个类似于以下的数据集: d <- data.frame(ID=c("1ef","3ic","9sd"), CI_Region=c("Bay Area","North Sierra","Central Valley"), Q18_429=c("Not a threat","Slightly serious","Very Serious"),
d <- data.frame(ID=c("1ef","3ic","9sd"),
CI_Region=c("Bay Area","North Sierra","Central Valley"),
Q18_429=c("Not a threat","Slightly serious","Very Serious"),
Q18_430=c("Extremely serious","Somewhat serious","Slightly serious"),
Q18_431=c("Slightly serious","Unknown","No Answer"))
d
这就是你想要的吗
d <- data.frame(ID=c("1ef","3ic","9sd"),
CI_Region=c("Bay Area","North Sierra","Central Valley"),
Q18_429=c("Not a threat","Slightly serious","Very Serious"),
Q18_430=c("Extremely serious","Somewhat serious","Slightly serious"),
Q18_431=c("Slightly serious","Unknown","No Answer"))
library(tidyr)
gather(d, question, response, -ID, -CI_Region) %>%
group_by(CI_Region, question, response) %>%
tally()
CI_Region question response n
(fctr) (fctr) (chr) (int)
Bay Area Q18_429 Not a threat 1
Bay Area Q18_430 Extremely serious 1
Bay Area Q18_431 Slightly serious 1
Central Valley Q18_429 Very Serious 1
Central Valley Q18_430 Slightly serious 1
Central Valley Q18_431 No Answer 1
North Sierra Q18_429 Slightly serious 1
North Sierra Q18_430 Somewhat serious 1
North Sierra Q18_431 Unknown 1