数据
我想创建一个变量来指示观测值所在的数据帧(用变量"code"识别)。
我有这个数据库:
id code var1 var2 var9
1 1 a 3 5 4
2 2 b 4 54 5435
3 3 c 44 5 5
4 4 d 5 5 54
5 5 e 6 5 6
6 6 f 6 5 6
和这些数据帧:
df1
code var2 var3
1 a 23 4
2 e 45 6
3 k 56 98
df2
code var2 var3
1 b 324 4343
2 z 34 545
3 q 545 6
4 j 77 67
df3
code var2 var3
1 c 1 1
2 l 78 56
df4
code var2 var3
1 d 2 2
2 j 1 1
df5
code var2 var3
1 f 5335 343
我的预期结果:
id code var1 var2 var9 source
1 a 3 5 4 df1
2 b 4 54 5435 df2
3 c 44 5 5 df3
4 d 5 5 54 df4
5 e 6 5 6 df1
6 f 6 5 6 df5
数据
df <- structure(list(id = 1:6, code = c("a", "b", "c", "d", "e", "f"), var1 = c(3L, 4L, 44L, 5L, 6L, 6L), var2 = c(5L, 54L, 5L, 5L, 5L, 5L), var9 = c(4L, 5435L, 5L, 54L, 6L, 6L)), class = "data.frame", row.names = c(NA, -6L))
df1 <- structure(list(code = c("a", "e", "k"), var2 = c(23L, 45L, 56L), var3 = c(4L, 6L, 98L)), class = "data.frame", row.names = c(NA, -3L))
df2 <- structure(list(code = c("b", "z", "q", "j"), var2 = c(324L, 34L, 545L, 77L), var3 = c(4343L, 545L, 6L, 67L)), class = "data.frame", row.names = c(NA, -4L))
df3 <- structure(list(code = c("c", "l"), var2 = c(1L, 78L), var3 = c(1L, 56L)), class = "data.frame", row.names = c(NA, -2L))
df4 <- structure(list(code = c("d", "j"), var2 = 2:1, var3 = 2:1), class = "data.frame", row.names = c(NA, -2L))
df5 <- structure(list(code = "f", var2 = 5335L, var3 = 343L), class = "data.frame", row.names = c(NA, -1L))
您可以从dplyr
中使用bind_rows
:
library(dplyr)
bind_rows(df1 = df1, df2 = df2, df3 = df3, df4 = df4, df5 = df5, .id = 'source')
#> source code var2 var3
#> 1 df1 a 23 4
#> 2 df1 e 45 6
#> 3 df1 k 56 98
#> 4 df2 b 324 4343
#> 5 df2 z 34 545
#> 6 df2 q 545 6
#> 7 df2 j 77 67
#> 8 df3 c 1 1
#> 9 df3 l 78 56
#> 10 df4 d 2 2
#> 11 df4 j 1 1
#> 12 df5 f 5335 343