Есть ли какой-нибудь простой способ обновить подмножество строк данных, используя другую?
Практически, я хочу использовать R
, чтобы сделать UPDATE x INNER JOIN y ON x.col1 = y.col1 SET x.col2 = y.col2
Входные данные:
x <- data.frame(col1=c('a','c','b','d'), col2=c(11,34,13,25))
y <- data.frame(col1=c('a','b'), col2=c(3,5))
z <- match(x$col1,y$col1)
1 1 NA 2 NA
Выходы:
Метод 1
x$col2 <- y$col2[z]
Метод 2
x$col2[z] <- y$col2[z]
Ошибка в x $ col2 [z] <- y $ col2 [z]: NA не допускаются в назначениях с подпиской </p>
Метод 3
x$col2[z[!is.na(z)]] <- y$col2[z[!is.na(z)]]
Желаемый выход:
in x
обновлять только те значения, которые соответствуют col1
из y