用R中的管道替换值

时间:2017-06-05 15:48:08

标签: indexing magrittr

我试图看看管道在这里是否有用 -

p3Data[which(p3Data$memCond==1), "blockType"] <- 0
p3Data[which(p3Data$memCond==2), "blockType"] <- 0
p3Data[which(p3Data$memCond==3), "blockType"] <- 1
p3Data[which(p3Data$memCond==4), "blockType"] <- 1

p3Data[which(p3Data$memCond==1), "trialType"] <- 0
p3Data[which(p3Data$memCond==2), "trialType"] <- 1
p3Data[which(p3Data$memCond==3), "trialType"] <- 0
p3Data[which(p3Data$memCond==4), "trialType"] <- 1

如何使用%&gt;%并提高效率?

1 个答案:

答案 0 :(得分:0)

试试这个

library(magrittr)
p3Data <- data.frame(memCond=sample(4,10,replace=TRUE))
p3Data <- p3Data %>% transform(blockType = (memCond-1) %/% 2, trialType = (memCond+1) %% 2)
# memCond blockType trialType
# 1        4         1         1
# 2        1         0         0
# 3        3         1         0
# 4        2         0         1
# 5        3         1         0
# 6        4         1         1
# 7        1         0         0
# 8        2         0         1
# 9        3         1         0
# 10       4         1         1

使用最新版本的软件包,你应该可以用

做得更好
p3Data %<>% transform(blockType = (memCond-1) %/% 2, trialType = (memCond+1) %% 2)

但我无法测试