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
  • 我对条件A进行子集划分,然后按
    主题进行分组
  • 我想计算每个受试者的病例总数,其中
    RESPONSE==44
    RESPONSE==77
    。然而,并不是每个科目都有这些,所以对于某些科目,这个总和应该是0
  • 我尝试了各种命令,包括
    summary
    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谢谢!这正是问题所在!祝你度过一个愉快的夜晚