【问题标题】:How to bin time point and average the data for several subjects?如何对时间点进行分箱并对多个主题的数据进行平均?
【发布时间】:2018-09-12 17:39:06
【问题描述】:

这是我的文件:

time3 从大约 -3600 到 +400-600 毫秒。我需要在 20 秒窗口内将此 time3 分箱,而 0 时间点保持为 0 并且不在窗口中间。然后我需要为每 20 秒的窗口平均 reSYS。 我需要为每个Subject"DL001""DL028")和每个condition"Light""control")执行此操作。

我尝试了几个选项,最接近的一个是这个:

data3 <- data2 %>% 
  group_by(time3 = cut(time3, breaks=205, include.lowest = TRUE)) %>%
  summarize(RR_int.mean = mean(RR_int))

但 20 秒窗口从出现 -3599.312 的第一个时间点开始,一直向上,因此 0 时间点位于 -9+11 之间的窗口中。它也将所有主题的所有值平均在一起,而不是分别对每个主题进行平均。

有人可以帮我吗?

【问题讨论】:

  • 不要将数据作为图片发布。请使用dput(df) 的输出编辑问题。或者,如果 dput(head(df, 20)) 的输出太大。 (df 是您的数据集的名称。)
  • 如果你想要reSYS 的平均值,那么为什么要mean(RR_int)

标签: r time average bin


【解决方案1】:

没有示例数据集很难说,但请尝试以下操作。

定义一个包含零并从那里向上或向下的中断向量。

brk_time3 <- with(data2, unique(c(rev(seq(0, min(time3), by = -20)), seq(0, max(time3), by = 20))))

现在是一个简单的group_by/summarize

data3 <- data2 %>%
    group_by(time3 = cut(time3, breaks = brk_time3, include.lowest = TRUE), Subject, condition) %>%
    summarize(mean.reSYS = mean(reSYS))

【讨论】:

  • 非常感谢!这真的很有帮助,而且确实有效!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-08
  • 2017-03-01
  • 2021-01-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多