I have two dataframes looking like:
Sheet1:
Column A | Column B |
---|---|
Sample1 | Sample2 |
Sample3 | Sample4 |
Sheet2:
Column A | Column B |
---|---|
abcd | efgh |
ijkl | mnop |
I want to combine them together into
Column A | Column B |
---|---|
Sample1 | abcd |
Sample2 | efgh |
etc.
Basically each cell of the two sheets matches just want to put them into a single file.
CodePudding user response:
Base R solution using stack()
within data.frame()
:
combined <- data.frame(
Column.A = stack(Sheet1)[, 1],
Column.B = stack(Sheet2)[, 1]
)
combined <- combined[order(combined$Column.A), ]
combined
Column.A Column.B
1 Sample1 abcd
3 Sample2 efgh
2 Sample3 ijkl
4 Sample4 mnop
Or a slight variation using cbind()
instead of data.frame()
:
combined <- cbind(
stack(Sheet1)[, 1, drop = FALSE],
stack(Sheet2)[, 1, drop = FALSE]
)
names(combined) <- names(Sheet1)
combined <- combined[order(combined$`Column A`), ]
Column A Column B
1 Sample1 abcd
3 Sample2 efgh
2 Sample3 ijkl
4 Sample4 mnop