使用 "ifelse" 和逻辑运算符 || 创建新列表变量

Create new list variable with "ifelse" and logical operator ||

我正在根据以下理由创建一个新的列表变量:

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$condition 定义)的反应时间值 (list$reactiontime) .如果条件不是2,则在新变量中添加NA。

这很好用...

如果我使用逻辑运算符 for or (|) 以便根据两个条件获得 select 值,它不再起作用,只是复制整个反应时间变量而不是具体数值。

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

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

您必须使用或运算符 |,如下所示:

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

也就是说,您还必须在 | 之后添加完整条件,而不仅仅是值。