【问题标题】:How do I average by specific columns如何按特定列进行平均
【发布时间】:2019-06-10 23:08:31
【问题描述】:

如何计算每个问题参与者的平均响应时间(行是参与者,列是正确答案和响应时间)。我可以对单个列执行此操作,但我不知道如何遍历所有列并将答案放入新表中。

最后我想要一个表格,显示每个问题的平均响应时间和正确答案的百分比。

我可以找到每个问题的中位数以及每个问题的正确答案百分比,但我可以遍历数据集,以便整理这些统计数据的汇总表。

new_Data <- data[ , grepl( "correct|time" , names( data ) ) ]

【问题讨论】:

标签: r group-by average data-processing


【解决方案1】:

如果我正确理解您的问题,这个 tidyverse 解决方案可能会满足您的需求。它根据正则表达式选择列并计算所有列的平均值。如果没有,请提供您所需输出的示例。祝你好运!

library(tidyverse)

mtcars %>%
  select(matches(".*p$|.*t$")) %>% #regex example: ends in "p" or ends in "t"
  summarise_all(mean, na.rm = T)

      disp       hp     drat      wt
1 230.7219 146.6875 3.596563 3.21725

【讨论】:

    【解决方案2】:

    这就是你正在寻找的东西

    sapply( mtcars[ , grepl( "a|wt" , names( mtcars ) ) ], quantile, .5 )
    

    或作为循环

    A<- NULL
    for( i in grep( "a|wt" , names( mtcars ) , value=T )){
    
    A <- rbind( A , 
    data.frame( vars=i , medain=quantile( mtcars[ , i ] , .5 )))
    }
    
    A
    

    【讨论】:

      猜你喜欢
      • 2022-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多