R 具有先前未知变量集的if条件
我没有找到这个问题的答案——我认为这是一个非常基本的问题。因此,如果我错过了一个已经存在的解决方案,我很抱歉,并将感谢链接到线程 我面临以下问题: 我想创建一个if条件,以确定观察值是否满足某些标准。然而,我想要测试的变量集是未知的,因为它们是在过程中创建的,并且可能会发生变化,这取决于输入模型的数据 我现在已经硬编码了变量名,如下所示:R 具有先前未知变量集的if条件,r,R,我没有找到这个问题的答案——我认为这是一个非常基本的问题。因此,如果我错过了一个已经存在的解决方案,我很抱歉,并将感谢链接到线程 我面临以下问题: 我想创建一个if条件,以确定观察值是否满足某些标准。然而,我想要测试的变量集是未知的,因为它们是在过程中创建的,并且可能会发生变化,这取决于输入模型的数据 我现在已经硬编码了变量名,如下所示: data$selectvar <- ifelse(data$crit1 == 1 | data$crit2 == 1 | data$crit3 == 1
data$selectvar <- ifelse(data$crit1 == 1 | data$crit2 == 1 | data$crit3 == 1, 1, 0)
data$selectvar有很多方法,但是如果你想使用ifelse,你可以试试这个
ifelse(data[,grep("crit",colnames(data))]==1,1,0)
签出包含
或从dplyr开始
可能?数据[grepl(“^crit”,名称(数据))]==1
?@r2evans谢谢!愚蠢的问题,但是^
的功能是什么?另外,如果有人面临类似的问题,在我使用的代码下面(我必须使用any
):dat$selectvar我很高兴你发现你需要any
。“^”
是正则表达式的一部分,它表示“字符串的开始”。例如,对于该模式,“crit5”
将匹配,但不匹配“acrit6”
。这可能不是必需的,在数据未知的情况下,使用正则表达式提供可靠的建议是非常困难的。谢谢!对我来说,问题是如果我使用这个函数,它似乎只对带有该字符串的第一列有效,如果其他列是TRUE
,则输出列仍然是0
。如果我添加any()
它似乎工作正常(请参阅原始问题下的注释)。