我正在尝试确定 data.frame 中变量的延迟,该变量包含多个位置,在这些位置中,相关数据在一系列“开始”和“停止”标记之间列出。
为此,我需要创建一个新列,该列在每次试验开始时从 0 开始计数,并以毫秒为单位进行计数,直到试验停止或下一次试验开始(以更容易者为准,我假设后者。)
我有这个:
df <- data.frame(c(0, 32, 32, 32, 32, 31, 31, 29), c(0, 32, 64, 96, 128, 159, 190, 219), c("Start", NA_character_, NA_character_, "Stop", NA_character_, NA_character_, "Start", NA_character_))
colnames(df) <- c('Delta', 'TimeMs', 'Marker')
我想做这个:
df <- data.frame(c(0, 32, 32, 32, 32, 31, 31, 29), c(0, 32, 64, 96, 128, 159, 190, 119), c("Start", NA_character_, NA_character_, "Stop", NA_character_, NA_character_, "Start", NA_character_), c(0, 32, 64, 96, 128, 159, 190, 0))
colnames(df) <- c('Delta', 'TimeMs', 'Marker', 'Latency')
显然,我会创建一个新列,其中填充自动生成的 NA:
df$Latency <- NA
然后我想我会在 Stat 位置所在的新列 0 中标记:
df$Latency [which(df$Marker == 'Start')] <- 0
从那里我被困住了。我以为我可以以某种方式使用 which 命令,但我的基本 R 技能使我相信这种方法过于简化,因此不正确。
提前感谢您的帮助,如果您需要澄清,请询问!
编辑:固定示例,标题
编辑2:固定示例
编辑3:使用真实NA_character_