R—如何组合具有相同列名但顺序不同的两个数据帧

R—如何组合具有相同列名但顺序不同的两个数据帧,r,dataframe,sorting,merge,R,Dataframe,Sorting,Merge,我想合并两个数据帧,但顺序不同,RR中缺少一些列 以下是一个例子: df.1 <- data.frame(class = c(1,6,8,9,7,8,9,6,4), math = c(0.7, 0.4, 0.7), hist = c(0.6, 0.4, 0.3), geom = c(0.7, 0.4, 0.7), eng = c(0.7, 0.4, 0.7), draw = c(0.8, 0.6, 0.7)) df.2 <- data.frame(eng = c(0.7, 0.4

我想合并两个数据帧,但顺序不同,RR中缺少一些列

以下是一个例子:


df.1 <- data.frame(class = c(1,6,8,9,7,8,9,6,4), math = c(0.7, 0.4, 0.7), hist = c(0.6, 0.4, 0.3), geom = c(0.7, 0.4, 0.7), eng = c(0.7, 0.4, 0.7), draw = c(0.8, 0.6, 0.7))

df.2 <- data.frame(eng = c(0.7, 0.4, 0.7, class = c(2, 1, 2, 3, 1),draw = c(0.8, 0.6, 0.7),geom = c(0.7, 0.4, 0.7) )



df.1这就是你想要的吗

库(dplyr)
df连接,by=c(“等级”、“几何”、“工程”、“图纸”)
df
#>课堂数学历史几何工程制图
#> 1      1  0.7  0.6  0.7 0.7  0.8
#> 2      6  0.4  0.4  0.4 0.4  0.6
#> 3      8  0.7  0.3  0.7 0.7  0.7
#> 4      9  0.7  0.6  0.7 0.7  0.8
#> 5      7  0.4  0.4  0.4 0.4  0.6
#> 6      8  0.7  0.3  0.7 0.7  0.7
#> 7      9  0.7  0.6  0.7 0.7  0.8
#> 8      6  0.4  0.4  0.4 0.4  0.6
#> 9      4  0.7  0.3  0.7 0.7  0.7
#>10 2 NA 0.7 0.7 0.8
#>11 1 NA 0.4 0.4 0.6
#>12 2 NA 0.7 0.7 0.7
#>13 3 NA 0.7 0.7 0.8
#>14 1 NA 0.4 0.4 0.6
#>15 3 NA 0.7 0.7 0.7
由(v0.3.0)于2020年7月11日创建

数据
df.1以下是我所能得到的

class = c(1, 6, 8, 9, 7, 8, 9, 6, 4)
math = c(0.7, 0.4, 0.7)
hist = c(0.6, 0.4, 0.3)
geom = c(0.7, 0.4, 0.7)
eng = c(0.7, 0.4, 0.7)
draw = c(0.8, 0.6, 0.7)

dimension <-
  seq(max(
    length(class),
    length(math),
    length(hist),
    length(geom),
    length(eng),
    length(draw)
  ))

df.new <- data.frame(class[dimension], math[dimension], hist[dimension], 
                     geom[dimension], eng[dimension], draw[dimension])

names(df.new) <- c('class', 'math', 'hist', 'geom', 'eng', 'draw')

谢谢你的回答。我不想找到数据。我想合并它,但顺序不同,缺少一些列。抱歉,我的英语不好…如果R中的
数据.frames
(垂直:添加更多行)没有相同的列数、相同的名称和相同的数据.type,则无法合并。秩序并不重要。选中
rbind()
。我使用了merge函数,但它不起作用。您需要一些东西(例如,每个数据帧中都有一个额外的列)来定义要连接两个数据帧的顺序。然后使用某种形式的连接。如果没有额外的列(id列),R就没有执行所需操作所需的信息。根据您的样本数据,了解您希望得到的结果会有帮助。
df.2
不是格式正确的数据框,请您对其进行编辑,使其成为有效的对象?
class = c(1, 6, 8, 9, 7, 8, 9, 6, 4)
math = c(0.7, 0.4, 0.7)
hist = c(0.6, 0.4, 0.3)
geom = c(0.7, 0.4, 0.7)
eng = c(0.7, 0.4, 0.7)
draw = c(0.8, 0.6, 0.7)

dimension <-
  seq(max(
    length(class),
    length(math),
    length(hist),
    length(geom),
    length(eng),
    length(draw)
  ))

df.new <- data.frame(class[dimension], math[dimension], hist[dimension], 
                     geom[dimension], eng[dimension], draw[dimension])

names(df.new) <- c('class', 'math', 'hist', 'geom', 'eng', 'draw')
df.new
  class math hist geom eng draw
1     1  0.7  0.6  0.7 0.7  0.8
2     6  0.4  0.4  0.4 0.4  0.6
3     8  0.7  0.3  0.7 0.7  0.7
4     9   NA   NA   NA  NA   NA
5     7   NA   NA   NA  NA   NA
6     8   NA   NA   NA  NA   NA
7     9   NA   NA   NA  NA   NA
8     6   NA   NA   NA  NA   NA
9     4   NA   NA   NA  NA   NA