I've got different data frame with this kind of data.
DF1
Name    |   Accession  | Character | %    |
P07437  |  beta        |  SJ       | 55   |
P07137  |  alpha       |  SA       | 66   |
P07677  |  beta        |  SI       | 65   |
P07437  |  alpha       |  ST       | 12   |
DF2
Name    |   Accession  | Character | %    |
P0225  |  beta        |  SJ       | 55   |
P0757  |  alpha       |  SA       | 66   |
P0377  |  beta        |  SI       | 65   |
P0137  |  alpha       |  ST       | 12   |
DF3
Name    |   Accession  | Character | %    |
P0357  |  beta        |  SK       | 55   |
P1540  |  beta       |  SA       | 66   |
P2367  |  gamma        |  SI       | 65   |
P6985  |  alpha       |  ST      | 12   |
DF4
Name    |   Accession  | Character | %    |
P07437  |  beta        |  SJ       | 55   |
P07137  |  beta       |  SA       | 66   |
P07677  |  alpha       |  SI       | 65   |
P07437  |  alpha       |  ST       | 12   |
When I try to use merge function with two data.frame the output is correct:
df_final <- merge(df1, df2  by=c("Name", "Accession"),all=TRUE)
But when I try to use merge function with 3 or more data frames I got this Error:
df_final <- merge(df1, df2, df3, df4,  by=c("Name", "Accession"),all=TRUE)
Error in fix.by(by.x, x) : 
  'by' must specify one or more columns as numbers, names or logical
Is there any way to use merge function with multiple data frames?
Here you are a reproducible example:
df1 <- data.frame(Name=c("P07137","P07677","P07437"), Accession=c("alpha","beta","beta"), Character=c("SJ","SA","SS"), Percentage=c(5,10,25))
df2 <- data.frame(Name=c("P0225","P0757","P0337"), Accession=c("alpha","beta","beta"), Character=c("SJ","SA","SS"), Percentage=c(5,10,25))
df3 <- data.frame(Name=c("P02137","P17677","P87437"), Accession=c("alpha","alpha","beta"), Character=c("SU","SS","ST"), Percentage=c(5,10,25))
df4 <- data.frame(Name=c("P0057","P07677","P07437"), Accession=c("alpha","beta","beta"), Character=c("SJ","SA","SS"), Percentage=c(5,10,25))
Thank you in advance.
`
