用延迟值替换R中的值

时间:2012-03-02 20:56:00

标签: r

@BenBolker这是我想要的输出示例;我不知道是否可以做到。

CURRENT_FIX_START   CURRENT_FIX_END identifier  trialtype   rotatedimaged
  targetloc prefix  corrfix errfix


7   202 30  rotated stimN11of2.jpg  left    231 254 0
7   208 42  rotated stimN221of2.jpg left    451 245 0
241 761 78  rotated stimW131-of2.jpg right  345 345 0

对于每个试验,如果有正确的前缀,用时间戳和正确的corrfix表示,我希望脚本在同一行上打印所有内容(我需要从前缀获取延迟度量) corrfix)。在旧数据中,时间戳出现在不同的行上。我正在考虑手动执行此操作,但这会耗费太多时间。

2 个答案:

答案 0 :(得分:0)

未经测试,但如何:

latency <- with(mydata,abs(CURRENT_FIX_START-CURRENT_FIX_END))
for (i in c("prefix","corrfix","errfix")) {
   mydata[[i]] <- ifelse(mydata[[i]]==1,latency,0)
}

答案 1 :(得分:0)

您需要调整适当的索引,但这似乎有效:

#fake data
dat <- data.frame(fix1 = runif(10), fix2 = runif(10), prefix = sample(0:1, 10, TRUE),
                  corfix = sample(0:1, 10, TRUE), errfix = sample(0:1, 10, TRUE))

dat[, 3:5] <- apply(dat[, 3:5], 2, function(x) ifelse(x == 1, abs(dat$fix1 - dat$fix2),x))