2015-12-04 142 views
0

我创建由以下理由一个新的列表变量:用“ifelse”和逻辑运算符||创建新的列表变量

new.list <- lapply(old.list, function(x) { 
x$`list$new.variable` <- ifelse(x$`list$condition` == 2, x$`list$reactiontime`, NA) x}) 

我告诉[R我的新名单变量(new.variable)需要包含仅基于条件2的反应时间值(list$reactiontime) (通过list$condition定义)。如果条件不是2,则在新变量中添加NA。

这工作得很好......

如果我使用,以便选择基于两个条件的值的逻辑运算符或(|),现在不和只是复制整个reactiontime变量的工作,而不是具体的价值。

new.list <- lapply(old.list, function(x) { 
x$`list$new.variable` <- ifelse(x$`list$condition` == 2 **| 6**, x$`list$reactiontime`, NA) 
    x}) 

如何使用逻辑运算符来获得我想要的?

回答

1

您必须使用或操作|如下:

x <- 1:4 
ifelse(x == 1 | x == 3, 2, NA) 
# [1] 2 NA 2 NA 

也就是说,你也有|而不是只值后,以添加完整状态。