【问题标题】:Plot count of entries per time range绘制每个时间范围内的条目数
【发布时间】:2018-09-14 17:52:47
【问题描述】:

给定情况: 对于理论用户研究,参与者在游戏中的行为被记录下来。 我们准确地保存when 他们得分 分,并希望观察他们在运行过程中的表现。 正确答案为“+1”,跳过问题为“0”,错误答案为“-1”。

我从这张桌子开始:

   ParticipantID        Modus Timestamp Duration Point
1             70 Singleplayer      0.03     2.26     1
2             70 Singleplayer      0.53     2.26     1
3             70 Singleplayer      3.36     9.41    -1
4             70 Singleplayer     13.83     2.36     0
5             70 Singleplayer     17.25     8.71     1
6             70 Singleplayer     27.02     6.91     1
7             70 Singleplayer     35.00     3.22     1
8             70 Singleplayer     39.29     2.56     0
9             70 Singleplayer     42.91     6.51     1
10            70 Singleplayer     50.49     3.72     1
11            70 Singleplayer     55.25     2.96     1
12            71 Singleplayer      0.03     2.26     1
13            71 Singleplayer      3.38     9.41    -1
14            71 Singleplayer     13.20     2.36     0
15            71 Singleplayer     17.25     8.71     1
16            71 Singleplayer     27.02     6.91     1
17            71 Singleplayer     37.00     3.22     1
18            71 Singleplayer     39.29     2.56     0
19            71 Singleplayer     39.89     2.56     0
20            71 Singleplayer     42.91     6.51     1
21            71 Singleplayer     50.49     3.72     1
22            71 Singleplayer     55.25     2.96     1

使用这些命令...

df <- read.csv("C:\\Users\\AUser\\Documents\\DummyTestValues.csv")
dt <- as.data.table(df)
df$timeRange <- cut(df$Timestamp, breaks = c(seq(0,120,by=1)))

我在给定的范围内将我的时间段组合在一起并达到了这一点:

   ParticipantID        Modus Timestamp Duration Point timeRange
1             70 Singleplayer      0.03     2.26     1     (0,1]
2             70 Singleplayer      0.53     2.26     1     (0,1]
3             70 Singleplayer      3.36     9.41    -1     (3,4]
4             70 Singleplayer     13.83     2.36     0   (13,14]
5             70 Singleplayer     17.25     8.71     1   (17,18]
6             70 Singleplayer     27.02     6.91     1   (27,28]
7             70 Singleplayer     35.00     3.22     1   (34,35]
8             70 Singleplayer     39.29     2.56     0   (39,40]
9             70 Singleplayer     42.91     6.51     1   (42,43]
10            70 Singleplayer     50.49     3.72     1   (50,51]
11            70 Singleplayer     55.25     2.96     1   (55,56]
12            71 Singleplayer      0.03     2.26     1     (0,1]
13            71 Singleplayer      3.38     9.41    -1     (3,4]
14            71 Singleplayer     13.20     2.36     0   (13,14]
15            71 Singleplayer     17.25     8.71     1   (17,18]
16            71 Singleplayer     27.02     6.91     1   (27,28]
17            71 Singleplayer     37.00     3.22     1   (36,37]
18            71 Singleplayer     39.29     2.56     0   (39,40]
19            71 Singleplayer     39.89     2.56     0   (39,40]
20            71 Singleplayer     42.91     6.51     1   (42,43]
21            71 Singleplayer     50.49     3.72     1   (50,51]

我现在想要实现的是一个图,它穿过 x 轴上的整个时间范围,并显示每个玩家在每个时间范围内获得了多少正分。

(示例:玩家 70 在 0-1 秒之间取得了两个正分,依此类推)

【问题讨论】:

    标签: r ggplot2


    【解决方案1】:
    library(tidyverse)
    df %>% 
      mutate( x = floor( Timestamp ) ) %>%
      group_by(ParticipantID, x) %>%
      summarise( score = sum( Point ) ) %>%
      ggplot( ., aes( x = x, y = score, group = as.factor(ParticipantID), color = as.factor(ParticipantID) ) ) + 
        geom_point() +
        scale_x_continuous( breaks = seq(0,120,5), labels = paste0(seq(0,120,5),"-", seq(1,121,5)),
                            minor_breaks = seq(0,120,1) ) +
        theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))
    

    【讨论】:

      猜你喜欢
      • 2019-12-28
      • 2015-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-22
      • 1970-01-01
      相关资源
      最近更新 更多