Мы можем использовать left_join
для этого.Поскольку последние столбцы в большом наборе данных пусты, удалите их при выполнении объединения, чтобы в полученном наборе данных не совпадали элементы NA
library(dplyr)
left_join(dflarge[1:2], dfsmall, by = c('hours', 'minutes'))
data
dfsmall <- structure(list(hours = c(0L, 0L, 0L, 0L, 1L, 1L, 1L, 1L), minutes = c(0L,
15L, 30L, 45L, 0L, 15L, 30L, 45L), color = c("B", "G", "R", "Y",
"Y", "Y", "B", "W"), length = c(1L, 2L, 2L, 5L, 3L, 2L, 1L, 1L
)), class = "data.frame", row.names = c(NA, -8L))
dflarge <- expand.grid(hours = 0:2, minutes = 1:59)
dflarge[c("color", "length")] <- NA
dflarge <- dflarge[do.call(order, dflarge[1:2]),]
row.names(dflarge) <- NULL