【发布时间】:2016-01-13 13:12:27
【问题描述】:
我编写了一系列 ifelse 语句,它们在数据框中创建了一个新列。示例:
rf$rs.X<- ifelse(rf$chl==0 & rf$dm=="y" & rf$gdr=="m" & rf$smk=="n" & rf$age>=70 & rf$sbp>=160, ">=40%", NA)
当我运行其他 ifelse 语句时,它们会覆盖前一个语句,因为我将它映射到数据框中的同一新列(即,我所有的 ifelse 语句都以相同的 rf$rs.X 开头)。
我知道我可以为每个语句指定一个要创建的新列,但我有 68 个 ifelse 语句,我不想为每个语句创建一个新列:我想要一个新列。
为了解决这个问题,我尝试嵌套所有 68 个 ifelse 语句,但它似乎不起作用(当我尝试运行它时,我得到一个蓝色加号 (+))。在这里阅读后,嵌套似乎有限制(n = 50)。
那么,对于一系列 ifelse 语句,我怎样才能将所有输出都放到数据框中的同一列中,而 ifelse 语句不会覆盖前一个?
谢谢!
【问题讨论】:
-
查找表不是更简单吗?
-
是的,抱歉,这是一个换位错误。在实际代码中我有
rf$chl==0 -
你能给个reproducible example吗?
-
如何使用
else if语句和apply将函数写入数据中的每一行
标签: r if-statement