如何按项目计算分类变量的百分比?

时间:2019-06-23 21:21:03

标签: r percentage summarization

我对按项目和时间段计算百分比有疑问。实验是这样的:

我进行了眼动追踪实验。要求参与者描述由两个感兴趣的区域组成的图片(AOI;我将它们命名为AgentPatient)。他们在计划配方时会记录他们的眼动(固定在两个AOI上)。我算出了一个包含时间信息和AOI的数据集,如下所示(从图片开始到开始的整个时间都分为单独的时间段,每个时间段40毫秒)。

Stimulus   Participant    AOIs         time_bin     
1          M1             agent          1               
1          M1             patient        2               
1          M1             patient        3               
1          M1             agent          4               

...
1          M2             agent          1               
1          M2             agent          2               
1          M2             agent          3              
1          M2             patient        4               
...
1          M3             agent          1               
1          M3             agent          2               
1          M3             agent          3              
1          M3             patient        4
...

2          M1             agent          1               
2          M1             agent          2               
2          M1             patient        3              
2          M1             patient        4

我想创建一个表,其中包含每个时区的每种刺激下一种AOI(例如代理)的比例。就像这样:

Stimulus      time_bin      percentage     
1                1            20%              
1                2            40%               
1                3            55%               
1                4            60%    
...
2                1            30%              
2                2            35%               
2                3            40%               
2                4            45% 

我之所以计算百分比,是因为我想进行多级分析(增长曲线分析),以调查因变量agent fixation proportion和自变量time_bin之间以及与{{1 }}作为随机效果。

由于我的英语知识有限,我希望我的问题能得到理解。

如果您有想法或建议,那将是很大的帮助!

1 个答案:

答案 0 :(得分:1)

使用tidyverse软件包生态系统,您可以尝试:

library(tidyverse)

df %>%
  mutate(percentage = as.integer(AOIs == "agent") ) %>%
  group_by(Stimulus, time_bin) %>%
  summarise(percentage = mean(percentage))

请注意,这将为您提供[0, 1]间隔内的比率。您仍然必须通过将其乘以100并附加“%”,将其转换为百分比值。