【发布时间】:2019-01-14 15:57:26
【问题描述】:
我需要 R 使用我数据集中的三个虚拟变量创建一个新的分类变量。我正在尝试使用“if”和“else if”。我已经设法在其他软件中做到了,但我在 R 中找不到解决方案。有人请看一下我的代码并告诉我出了什么问题吗?
data$newvariable<- if(data$dummyA[1]) {
(data$newvariable<-"1")
} else if(data$dummyB[1]){
(data$newvariable<-"2")
} else if(data$dummyC[1]){
(data$newvariable<-"3") }
我希望不要重复问题。对不起!并提前感谢您!
我得到的结果是所有被归类为“1”的案例,这让我觉得第一个 if 语句和下一个 if 语句之间缺少一些东西。但我找不到解决方案,请帮忙!
谢谢!
【问题讨论】:
-
寻求帮助时,您应该包含一个简单的reproducible example,其中包含可用于测试和验证可能解决方案的示例输入和所需输出。这样可以更轻松地为您提供帮助。
-
if检查单个条件 - 可能您想使用矢量化版本ifelse,类似于data$newvar = with(data, ifelse(dummyA, 1 ifelse(dummyB, 2, 3)))。如果您使用的是dplyr,也可以尝试dplyr::case_when。 -
等待确认,但建议欺骗:vectorized if statement in R.
-
它与 ifelse 一起工作!这就是我要找的东西 =)
标签: r if-statement dummy-variable