如何在多列上执行IFELSE?
我有示例dataframe
dat <- data.frame(
variable1 = c(NA,2,3,4,5,6,99),
variable2 = c(NA,2,99,4,5,6,7),
variable3 = c(NA,2,3,4,5,6,7),
variable4 = c(5:11),
variable5 = c(1,2,3,4,5,6,999),
variable6 = c(1,2,3,4,999,6,7),
variable7 = c(1:7)
)
variable1 variable2 variable3 variable4 variable5 variable6 variable7
1 NA NA NA 5 1 1 1
2 2 2 2 6 2 2 2
3 3 99 3 7 3 3 3
4 4 4 4 8 4 4 4
5 5 5 5 9 5 999 5
6 6 6 6 10 6 6 6
7 99 7 7 11 999 7 7
我想执行一个ifelse,说明是否变量1和变量2和变量3是na, 采用变量4,变量5,变量6, 否则,请变量1,变量2,变量3 到新列 变量8,变量9,变量10。
因此,新的数据框应该看起来像这样
variable1 variable2 variable3 variable4 variable5 variable6 variable7 variable8 variable9 variable10
1 NA NA NA 5 1 1 1 5 1 1
2 2 2 2 6 2 2 2 2 2 2
3 3 99 3 7 3 3 3 3 99 3
4 4 4 4 8 4 4 4 4 4 4
5 5 5 5 9 5 999 5 5 5 5
6 6 6 6 10 6 6 6 6 6 6
7 99 7 7 11 999 7 7 99 7 7
我更喜欢Dplyr解决方案;)
I have sample dataframe
dat <- data.frame(
variable1 = c(NA,2,3,4,5,6,99),
variable2 = c(NA,2,99,4,5,6,7),
variable3 = c(NA,2,3,4,5,6,7),
variable4 = c(5:11),
variable5 = c(1,2,3,4,5,6,999),
variable6 = c(1,2,3,4,999,6,7),
variable7 = c(1:7)
)
variable1 variable2 variable3 variable4 variable5 variable6 variable7
1 NA NA NA 5 1 1 1
2 2 2 2 6 2 2 2
3 3 99 3 7 3 3 3
4 4 4 4 8 4 4 4
5 5 5 5 9 5 999 5
6 6 6 6 10 6 6 6
7 99 7 7 11 999 7 7
I want to perform an ifelse saying if variable1 and variable2 and variable3 are NA,
take variable4, variable5, variable6,
otherwise take variable1, variable2, variable3
to the new columns
variable 8, variable9, variable10.
so the new data frame should look like this
variable1 variable2 variable3 variable4 variable5 variable6 variable7 variable8 variable9 variable10
1 NA NA NA 5 1 1 1 5 1 1
2 2 2 2 6 2 2 2 2 2 2
3 3 99 3 7 3 3 3 3 99 3
4 4 4 4 8 4 4 4 4 4 4
5 5 5 5 9 5 999 5 5 5 5
6 6 6 6 10 6 6 6 6 6 6
7 99 7 7 11 999 7 7 99 7 7
I prefer a dplyr solution ;)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
dplyr :: case_when
是完美的:dplyr::case_when
is perfect for this:另一个可能的解决方案:
Another possible solution: