R:统计数据子集中特定值列中的行数
几天来,我一直在试图找到一个解决办法,解决一些非常简单的问题,但运气不佳。这是:R:统计数据子集中特定值列中的行数,r,group-by,count,subset,R,Group By,Count,Subset,几天来,我一直在试图找到一个解决办法,解决一些非常简单的问题,但运气不佳。这是: 我有一个数据框,其中一行名为RESPONSE 我对条件A进行子集划分,然后按主题进行分组 我想计算每个受试者的病例总数,其中RESPONSE==44和RESPONSE==77。然而,并不是每个科目都有这些,所以对于某些科目,这个总和应该是0 我尝试了各种命令,包括summary,count,filter。但我要么得到每个人的总体案例总数,要么就把没有77或44的参与者剔除(而不是给他们分配一个0) 我想代码应该是这
RESPONSE
主题进行分组
RESPONSE==44
和RESPONSE==77
。然而,并不是每个科目都有这些,所以对于某些科目,这个总和应该是0summary
,count
,filter
。但我要么得到每个人的总体案例总数,要么就把没有77
或44
的参与者剔除(而不是给他们分配一个0)
我想代码应该是这样的:
Condition_A <- subset(df, Condition=="A") %>%
group_by(Subject) %>%
sum(df$RESPONSE==77 | df$RESPONSE==44)
条件_A%
分组依据(受试者)%>%
总和(df$RESPONSE==77 | df$RESPONSE==44)
我看到其他人以同样的方式使用sum
,但我得到一个错误,我的所有变量都必须是数字,而行响应
本身就是数字。
我将非常感谢这里的任何帮助。谢谢。使用
总结
library(tidyverse)
df <- tribble(
~Condition, ~Subject, ~RESPONSE,
"A", 1, 77,
"A", 1, 44,
"A", 1, 1,
"A", 2, 1,
"A", 2, 1,
"A", 2, 44,
"A", 3, 1
)
df %>%
filter(Condition == "A") %>%
group_by(Subject) %>%
summarise(
responses = sum(RESPONSE == 77 | RESPONSE == 44, na.rm = TRUE)
)
#> # A tibble: 3 x 2
#> Subject responses
#> <dbl> <int>
#> 1 1 2
#> 2 2 1
#> 3 3 0
库(tidyverse)
df%
过滤器(条件==“A”)%>%
分组依据(受试者)%>%
总结(
响应=总和(响应==77 |响应==44,na.rm=TRUE)
)
#>#tibble:3 x 2
#>受试者回答
#>
#> 1 1 2
#> 2 2 1
#> 3 3 0
不幸的是,我做的每件事都一模一样,我仍然只得到1x1的输出,只有一个值,为所有参与者汇总。出于某种原因,它不会按主题分组。您有什么可能的建议吗?听起来好像是使用了plyr
中的summary
功能,而不是dplyr
。将summary
替换为dplyr::summary
.Million谢谢!这正是问题所在!祝你度过一个愉快的夜晚