2015-12-04 108 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 

也就是說,你也有|而不是隻值後,以添加完整狀態。