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

时间:2015-12-04 07:52:02

标签: r list logical-operators

我正在按照以下原理创建一个新的列表变量:

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})

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

1 个答案:

答案 0 :(得分:1)

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

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

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