у меня есть список dataframes list1
список rbind из dataframes лишь некоторые общие элементы в одном столбце
df1 <- data.frame(ID = paste0(LETTERS[1],1:4), valueA = seq(0.1,0.4,0.1), Category= "Apples")
df2 <- data.frame(ID = paste0(LETTERS[1],3:6), valueB = seq(0.1,0.4,0.1), Category= "Apples")
df3 <- data.frame(ID = paste0(LETTERS[1],4:7), valueC = seq(0.1,0.4,0.1), Category= "Apples")
list1 <- list(df1,df2,df3)
list1
[[1]]
ID valueA Category
1 A1 0.1 Apples
2 A2 0.2 Apples
3 A3 0.3 Apples
4 A4 0.4 Apples
[[2]]
ID valueB Category
1 A3 0.1 Apples
2 A4 0.2 Apples
3 A5 0.3 Apples
4 A6 0.4 Apples
[[3]]
ID valueC Category
1 A4 0.1 Apples
2 A5 0.2 Apples
3 A6 0.3 Apples
4 A7 0.4 Apples
Я хочу rbind
это вместе, но соответствующие общей ID
поле в каждом dataframe так, что они появляются в той же строке
Желаемый результат:
ID valueA Category valueB valueC
1 A1 0.1 Apples NA NA
2 A2 0.2 Apples NA NA
3 A3 0.3 Apples 0.1 NA
4 A4 0.4 Apples 0.2 0.1
7 A5 NA Apples 0.3 0.2
8 A6 NA Apples 0.4 0.4
12 A7 NA Apples NA 0.4
Я пробовал с rbind.fill(list1)
, но каждый dataframe объединялся в отдельные строки. Также доволен поворотом это к желаемому результату:
ID valueA Category valueB valueC
1 A1 0.1 Apples NA NA
2 A2 0.2 Apples NA NA
3 A3 0.3 Apples NA NA
4 A4 0.4 Apples NA NA
5 A3 NA Apples 0.1 NA
6 A4 NA Apples 0.2 NA
7 A5 NA Apples 0.3 NA
8 A6 NA Apples 0.4 NA
9 A4 NA Apples NA 0.1
10 A5 NA Apples NA 0.2
11 A6 NA Apples NA 0.3
12 A7 NA Apples NA 0.4
Ну вы узнаете что-то новое каждый день! Мне нравится решение «base» – Bonono