I have this df1:
A B C
1 2 3
5 7 9
where A B C
are columns names.
I have another df2 with one column:
A
1
I just love R, here is yet another Base R
solution but with mapply
:
data.frame(mapply(c, df1, df2))
Result:
A B C
1 1 2 3
2 5 7 9
3 1 1 1
4 2 2 2
5 3 3 3
6 4 4 4
Note:
No need to deal with colnames like almost all the other solutions... The key to why this works is that "mapply
calls FUN for the values of ... [each element]
(re-cycled to the length of the longest...[element]" (See ?mapply
). In other words, df2$A
is recycled to however many columns df1
has.
Data:
df1 = structure(list(A = c(1L, 5L), B = c(2L, 7L), C = c(3L, 9L)), .Names = c("A",
"B", "C"), class = "data.frame", row.names = c(NA, -2L))
df2 = structure(list(A = 1:4), .Names = "A", row.names = c(NA, -4L), class = "data.frame")