我有这样的数据帧:
IDSurvey = c(12234,23456,12356)
Q1 = c("Yes", "No", "Yes")
Q2 = rep("No",3)
Q3 = rep("Yes", 3)
D = data.frame(IDSurvey, Q1, Q2, Q3)
我希望你的帮助,找到这个答案。
IDSurvey Q1 Q2 Q3 NunmberOfYes NumberOfNo
12234 Yes No Yes 2 1
23456 No No Yes 1 2
12356 Yes No Yes 2 1
非常感谢您的帮助和耐心。问候!
使用基础R
IDSurvey = c(12234,23456,12356)
Q1 = c("Yes", "No", "Yes")
Q2 = rep("No",3)
Q3 = rep("Yes", 3)
D = data.frame(IDSurvey, Q1, Q2, Q3)
str(D)
解
D$yes <- rowSums(D == "Yes",na.rm=TRUE)
D$No <- rowSums(D == "No",na.rm=TRUE)
试试这个:警告(S)是(有)由于不同的因子水平。您可能需要重构。
library(dplyr)
library(tidyr)
D %>%
gather(key,value,-IDSurvey) %>%
with(table(IDSurvey,value))
或这个:
D %>%
gather(key,value,-IDSurvey) %>%
group_by(IDSurvey) %>%
count(value) %>%
spread(value,n)