Я пытаюсь использовать coalesce()
.Примерный набор данных выглядит следующим образом (воспроизводимый код ниже):
Country X2016 X2017 X2018
1 Australia 10 NA 12
2 UK 15 20 NA
3 USA NA 40 NA
Когда я передаю два вектора в этой форме: coalesce(df$X2018, df$X2017)
, он отлично работает.
Но когда я ставлювекторы как: df[4], df[3]
, я получаю неожиданные дополнительные значения.
Воспроизводимый пример ниже:
library(tidyverse)
df <- data.frame(stringsAsFactors=FALSE,
Country = c("Australia", "UK", "USA"),
X2016 = c(10L, 15L, NA),
X2017 = c(NA, 20L, 40L),
X2018 = c(12L, NA, NA)
)
df
coalesce(df$X2018, df$X2017)
coalesce(df[4], df[3])
Итак, coalesce(df$X2018, df$X2017)
возвращает:
[1] 12 20 40
, чтокак и ожидалось.
Я не понимаю, почему coalesce(df[4], df[3])
возвращает:
X2018
1 12
2 NA, 20, 40
3 NA, 20, 40
Я не могу понять, почему он возвращает первые два столбца.