虽然我确信以前已经有人问过这个问题,但仔细阅读对类似线程的答复仍然没有帮助我完成这项工作...
我有两个表,A和B。(此示例已简化,但最终我想使用两个表分别为16000行x 390列和15800行x 270列)
A的行名称是(艺术,历史,数学等...,法语,HomeEc ),而B的行名称是(艺术,历史,数学等...,< strong>西班牙语,摄影)。
每个表的列名是20个不同的学生(A:Student1-Student20; B:Student21-Student40)
每张表中的值为测试成绩。
如何在R中合并这两个表,使得最终表包含行名(“艺术”,“历史记录”,“数学”等,“法语”,“ HomeEc”,“西班牙语”,“摄影”)且没有重复,并且每列中的值是学生1-40的对应测试分数(如果原始表中没有该行,则为0)?
非常感谢您!
答案 0 :(得分:0)
所以您有1组结果(我们称其为df)
df<-data.frame(stringsAsFactors=FALSE,
Subject = c("Arts", "History", "Maths", "French", "HomeEc"),
student_1 = c(50L, 51L, 52L, 53L, 54L),
student_2 = c(67L, 68L, 69L, 70L, 71L),
student_3 = c(82L, 83L, 84L, 85L, 86L))
Subject student_1 student_2 student_3
1 Arts 50 67 82
2 History 51 68 83
3 Maths 52 69 84
4 French 53 70 85
5 HomeEc 54 71 86
还有另一组结果(df2)
df2<-data.frame(stringsAsFactors=FALSE,
Subject = c("Arts", "History", "Maths", "Spanish", "Photography"),
student_4 = c(40L, 41L, 42L, 43L, 44L),
student_5 = c(71L, 72L, 73L, 74L, 75L),
student_6 = c(92L, 93L, 94L, 95L, 96L)
)
Subject student_4 student_5 student_6
1 Arts 40 71 92
2 History 41 72 93
3 Maths 42 73 94
4 Spanish 43 74 95
5 Photography 44 75 96
像这样results<-dplyr::full_join(df, df2, by "Subject")
组合它们
Subject student_1 student_2 student_3 student_4 student_5 student_6
1 Arts 50 67 82 40 71 92
2 History 51 68 83 41 72 93
3 Maths 52 69 84 42 73 94
4 French 53 70 85 NA NA NA
5 HomeEc 54 71 86 NA NA NA
6 Spanish NA NA NA 43 74 95
7 Photography NA NA NA 44 75 96