如何合并三列而不重复相同的值

How to merge three columns without repeating same values

我有三列:

A     B     C
2018  NA    NA
2018  NA    NA
2018  NA    NA
NA    2019  NA
2018  2018  NA
NA    2017  2017

我想创建一个新列year,它会是这样的:year = 2018, 2018, 2018, 2019, 2018, 2017。

假设您的数据存储在一个名为 df 的对象中:

df$year <- rowMeans(df[,c("A", "B", "C")], na.rm = TRUE)

如果您的列是数字类型,则代码有效。

另一种方法是使用 coalesce 的 tidyverse,它为您提供每行中的第一个非缺失元素:

library(tidyverse)
df %>%
  mutate(year = coalesce(A, B, C))