Is there a way to reprint column headers directly below the last row of the first data set (directly above the second data set) when using rbind to put two data sets together? I have searched and searched but haven't seen any examples like this. Thanks!
Asked
Active
Viewed 742 times
0
-
1Welcome to StackOverflow! Please read the info about [how to ask a good question](http://stackoverflow.com/help/how-to-ask) and how to give a [reproducible example](http://stackoverflow.com/questions/5963269). This will make it much easier for others to help you. – Ronak Shah Aug 16 '18 at 04:20
-
What do you mean by "reprint" ? The only context in which this might make sense would be a table in a document. In the console, `rbind` on two data frames generates a new data frame; headers are at the head by definition. – neilfws Aug 16 '18 at 04:28
2 Answers
0
A not so sophisticated but this will work for you.
Import both the data frames with keeping header = F
after that use
library(dplyr)
final<- bind_rows(df1,df2) ##this will bind both the data frames
names(final) <- final[1,] ##this will take 1st row as column names or header
final <- final[-1,] ##this will remove your 1st row which is not useful now.
This method will help you do your work.

Hunaidkhan
- 1,411
- 2
- 11
- 21
0
I generated some example data (easier if you provide this yourself when asking the question). Basically, you take the column names of the second dataframe, convert these to a dataframe object. You also need to setNames
function to give each dataframe that you want to rbind
the same column names as the first dataframe.
df1 <- data.frame(one=c("a", "b"), two=c("c", "d"))
df1
# one two
#1 a c
#2 b d
df2 <- data.frame(three=c("e", "f"), four=c("g", "g"))
df2
# three four
#1 e g
#2 f g
rbind(df1,
setNames(as.data.frame(t(colnames(df2))), names(df1)),
setNames(df2, names(df1)))
# one two
#1 a c
#2 b d
#3 three four
#4 e g
#5 f g

milan
- 4,782
- 2
- 21
- 39