gpt4 book ai didi

r - 根据 R 中其他三个列的值创建新列

转载 作者:行者123 更新时间:2023-12-02 18:12:06 25 4
gpt4 key购买 nike

我有一个数据框:

df <- data.frame('a'=c(1,NA,3,NA,NA), 'b'=c(NA,NA,NA,4,50), 'c'=c(NA,5,NA,NA,NA))
df
a b c
1 1 NA NA
2 NA NA 5
3 3 NA NA
4 NA 4 NA
5 NA 50 NA

我需要创建一个新列 d,它只组合没有 NA 的值:

  a  b  c  d
1 1 NA NA 1
2 NA NA 5 5
3 3 NA NA 3
4 NA 4 NA 4
5 NA 50 NA 50

最佳答案

@r2evans 在评论部分的解决方案的补充:

我们可以使用 dplyr 包中的 coalesce:

df %>% 
mutate(d = coalesce(a, b, c))
   a  b  c  d
1 1 NA NA 1
2 NA NA 5 5
3 3 NA NA 3
4 NA 4 NA 4
5 NA 50 NA 50

我们可以使用 tidyr 包中的 unitena.rm 参数:

library(tidyr)
library(dplyr)

df %>%
unite(d, a:c, na.rm = TRUE, remove = FALSE)
   d  a  b  c
1 1 1 NA NA
2 5 NA NA 5
3 3 3 NA NA
4 4 NA 4 NA
5 50 NA 50 NA

关于r - 根据 R 中其他三个列的值创建新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72164438/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com