我如何按特定列进行平均

How do I average by specific columns

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

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

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

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

这就是你要看的

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

如果我对你的问题的理解正确,这个 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