如何合并三列而不重复相同的值
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))
我有三列:
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))