【发布时间】:2017-04-22 00:07:05
【问题描述】:
在 df1 中,我需要将 msec 的值替换为 df2 中的相应值。
df1 <- data.frame(ID=c('rs', 'rs', 'rs', 'tr','tr','tr'), cond=c(1,1,2,1,1,2),
block=c(2,2,4,2,2,4), correct=c(1,0,1,1,1,0), msec=c(456,678,756,654,625,645))
df2 <- data.frame(ID=c('rs', 'rs', 'tr','tr'), cond=c(1,2,1,2),
block=c(2,4,2,4), mean=c(545,664,703,765))
在df1中,如果correct==0,则引用df2与ID、cond和block的匹配值。将df1 中msec 的值替换为df2 中mean 的对应值。
例如,df1 中的第二行有correct==0。因此,在df2 中找到ID=='rs'、cond==1、block==2 的对应行,并使用平均值 (mean=545) 的值替换毫秒 (msec=678) 的值。请注意,在 df1 中,ID、block 和 cond 的组合可以重复,但每个组合在 df2 中只出现一次。
【问题讨论】:
标签: r