我正在按照以下原理创建一个新的列表变量:
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
)。如果condition不是2,则在新变量中添加NA。
这很好......
如果我使用逻辑运算符或(|
)来根据两个条件选择值,它将不再起作用,只复制整个反应时变量而不是特定值。
new.list <- lapply(old.list, function(x) {
x$`list$new.variable` <- ifelse(x$`list$condition` == 2 **| 6**, x$`list$reactiontime`, NA)
x})
我如何使用逻辑运算符来获得我想要的东西?
答案 0 :(得分:1)
您必须使用或运算符|
,如下所示:
x <- 1:4
ifelse(x == 1 | x == 3, 2, NA)
# [1] 2 NA 2 NA
也就是说,您还必须在|
之后添加完整条件,而不仅仅是值。