Дано df1
, которое является подмножеством df2
(меньшее количество столбцов):
df1 <- data.frame(Species = letters[1:10])
df2 <- iris
Я хочу отобразить df1
, чтобы иметь такое же количество столбцов, как df2
содинаковые имена.Мое решение:
mapDf <- function(df, dfToMap) {
result <- data.frame(matrix(ncol = ncol(dfToMap), nrow = nrow(df)))
colnames(result) <- colnames(dfToMap)
for(c in colnames(dfToMap)) {
if(c %in% colnames(df)) {
result[, c] <- df[, c]
}
}
result
}
тест:
mapDf(df1, df2)
Есть идеи, как это упростить?