R错误“条件的长度> 1,并且将仅使用第一个元素”

时间:2018-08-23 22:29:43

标签: r

我已经搜索了有关该主题的先前文章,但没有找到可以回答我问题的东西。

我正在执行以下操作:

brfss2013[, "hExcellent"] <- ifelse(brfss2013$genhlth == 'Excellent') 1, 0
  

错误:“ brfss2013 [,” hExcellent“]中的意外数字常量<-ifelse(brfss2013 $ genhlth =='Excellent')1”

不确定是什么问题。我只是根据对条件的评估试图在新列中放置1或0。

感谢您的帮助。谢谢。

1 个答案:

答案 0 :(得分:1)

两个问题:

  1. 您的ifelse语法不正确。如果应为ifelse(condition, TRUE, FALSE)(请注意方括号)。另请参见?ifelse

  2. 更重要的是,由于您返回1或0(取决于条件),因此根本不需要ifelse

    brfss2013[, "hExcellent"] <- +(brfss2013$genhlth == 'Excellent')
    

    足够快。一元运算符+?`+`中进行了解释。

    或者,您也可以使用as.integer

    brfss2013[, "hExcellent"] <- as.integer(brfss2013$genhlth == 'Excellent')
    

最后,对于以后的帖子,最好包含某种形式的最小代表样本数据,以使您的问题/问题/错误可重现。理想情况下,潜在的SO受访者应该能够将示例数据和代码复制并粘贴到终端中,并重现您描述的问题。要改善您的信息,请查看提供minimal reproducible example/attempt时应考虑的事项。