Попробуйте этот однострочный
do.call("rbind", Map("rbind", split(x, 1:nrow(x)), split(y, 1:nrow(y))))
, который дает эти data.frame, если x
и y
такие же, как в вопросе:
a b c
1.1 1 2 3
1.2 10 20 30
2.2 2 3 4
2.21 20 30 40
3.3 3 4 5
3.31 30 40 50
Он разбивает все данныекадр за строкой, а затем будет привязывать соответствующие компоненты разбиений.Тогда это связывает все это.Обратите внимание, что этот однострочник работает, даже если столбцы имеют разные типы.Например, это будет работать, даже если:
x <- data.frame(a = letters[1:3], b = 1:3, c = c(TRUE, FALSE, TRUE))
y <- data.frame(a = LETTERS[1:3], b = 11:13, c = c(FALSE, TRUE, FALSE))