首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在R中组合时间序列中的两个向量的数据

在R中组合时间序列中的两个向量的数据
EN

Stack Overflow用户
提问于 2018-08-07 17:45:27
回答 1查看 75关注 0票数 0

我是一名研究助理,收集了眼动数据,现在我试图使用R来分析这些数据。

从我使用的眼球跟踪器来看,每个样本都被标记为是否属于眼跳(这意味着眼睛在运动)和是否属于眨眼。当有人开始眨眼时,眼球跟踪器首先识别眼跳,然后识别眨眼。为了能够替换属于眨眼的所有眼动样本(数据文件中的行),我需要创建一个变量来标记所有包含眨眼的眼球。下面是一个简单的示例:

我有数据:

代码语言:javascript
复制
Data <- data.frame(Blink=c(0,0,0,1,1,0,0,0,1,1,0,0,0,0,0), Saccade=c(0,1,1,1,1,1,0,1,1,1,1,0,1,1,0))

因此我想要一个像这样的变量:

代码语言:javascript
复制
Data$Saccade_containing_blink <- c(0,1,1,1,1,1,0,1,1,1,1,0,0,0,0)

使用R时,哪个函数会给出这个结果?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-07 18:13:26

代码语言:javascript
复制
# example data
Data <- data.frame(Blink=c(0,0,0,1,1,0,0,0,1,1,0,0,0,0,0), 
                   Saccade=c(0,1,1,1,1,1,0,1,1,1,1,0,1,1,0))

library(dplyr)

Data %>%
  group_by(group = cumsum(Saccade==0)) %>%            # group your Saccades
  mutate(Saccade_containing_blink = max(Blink),       # if there's a Blink update all rows within that Saccade
         Saccade_containing_blink = ifelse(Saccade == 0, 0, Saccade_containing_blink)) %>%  # update Saccade to exclude the 0s (0s separate Saccades)
  ungroup() %>%                                       # ungroup data
  select(-group)                                      # remove grouping column

# # A tibble: 15 x 3
#   Blink Saccade Saccade_containing_blink
#   <dbl>   <dbl>                    <dbl>
# 1     0       0                        0
# 2     0       1                        1
# 3     0       1                        1
# 4     1       1                        1
# 5     1       1                        1
# 6     0       1                        1
# 7     0       0                        0
# 8     0       1                        1
# 9     1       1                        1
# 10    1       1                        1
# 11    0       1                        1
# 12    0       0                        0
# 13    0       1                        0
# 14    0       1                        0
# 15    0       0                        0

这种方法的原理是能够对Saccade列进行分组,并检查每个Blink中至少有一行中是否有Saccade。我假设在Saccade列中,扫视由一个0分隔。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51723692

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档