【问题标题】:Create end_time variable on row A from start_time variable on row B从 B 行的 start_time 变量在 A 行创建 end_time 变量
【发布时间】:2022-06-29 23:28:31
【问题描述】:

我想根据每个参与者的 start_times 和 time_end_of_experiment(减去 10 毫秒)为每个参与者创建一个 end_time 变量,但我不确定如何执行此操作。

这是一个最小的工作示例

df <- data.frame("subject_nr" = c("1", "1", "1", "2", "2"),
                 "start_time" = c(50, 52, 55, 53, 54.5),
                 "time_end_of_experiment" = c(60, 60, 60, 55.5, 55.5))


  subject_nr start_time time_end_of_experiment
1          1       50.0                   60.0
2          1       52.0                   60.0
3          1       55.0                   60.0
4          2       53.0                   55.5
5          2       54.5                   55.5

这是最终产品的外观

  subject_nr start_time end_time time_end_of_experiment  
1          1       50.0     51.9                     60
2          1       52.0     54.9                     60
3          1       55.0     59.9                     60
4          2       53.0     54.4                   55.5
5          2       54.5     55.4                   55.5

【问题讨论】:

  • 嗨,对我来说还不是很清楚,你到底想要什么。您想要每个主题的行之间的差异吗?每个主题的行之间的所有差异是否相等并且应该总计为time_end_of_experiment?你能更详细地描述你的问题和目标吗?

标签: r


【解决方案1】:

我们可以这样做: 首先使用leadlead(start_time)中减去0.1 然后对于组中的最后一个值,使用 ifelse 语句从 time_end_of_experiment 中减去 0.1:

library(dplyr)

df %>% 
  group_by(subject_nr) %>% 
  mutate(end_time = lead(start_time, default = last(start_time))-.1, .before=3) %>% 
  mutate(end_time = ifelse(start_time == last(start_time), time_end_of_experiment-.1, end_time))
  subject_nr start_time end_time time_end_of_experiment
  <chr>           <dbl>    <dbl>                  <dbl>
1 1                50       51.9                   60  
2 1                52       54.9                   60  
3 1                55       59.9                   60  
4 2                53       54.4                   55.5
5 2                54.5     55.4                   55.5

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-19
    • 2014-10-31
    • 2016-10-27
    • 2013-02-09
    • 2020-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多