Fix merge.data.frame to keep column names for empty data frames (Bug 18930) #226
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes Bug 18930: merging empty data frames with merge() was losing column names.
This patch preserves all column names when one or both data frames are empty,
without changing behavior for non-empty merges.
Example test cases:
Merge with one empty data frame
df1 <- data.frame(x = numeric())
df2 <- data.frame(y = 1:2)
merge(df1, df2, all.x = TRUE, all.y = TRUE)
#> Column names: "x" "y"
#> 0 rows
Merge with both empty data frames
df3 <- data.frame(a = numeric(), b = numeric())
df4 <- data.frame(c = numeric(), d = numeric())
merge(df3, df4, all.x = TRUE, all.y = TRUE)
#> Column names: "a" "b" "c" "d"
#> 0 rows