使用 "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
也就是说,您还必须在 |
之后添加完整条件,而不仅仅是值。
我正在根据以下理由创建一个新的列表变量:
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
也就是说,您还必须在 |
之后添加完整条件,而不仅仅是值。