두 개의 데이터 세트를 R에 병합하려고합니다. 첫 번째 데이터 집합은 AcademicData이고 다른 하나는 Mathsdata입니다. 데이터 세트를 병합 할 때 수천 개의 중복 행이 생깁니다. 여기에 코드의 그림과 결과로 나타나는 합병 테이블이 total이라고합니다. 변수 "gender"로 데이터 세트를 병합하려고합니다.중복 값을 가져 오지 않고 R을 사용하여 두 개의 데이터 세트를 병합하는 방법은 무엇입니까?
코드를 수정하십시오.
setwd("H:/Data application/x14484252-DAD Project")
MathsData <- read.csv("Math-Students.csv", header=T, na.strings=c(""),
stringsAsFactors = T)
AcademicData <- read.csv("Academic-Performance.csv", header=T,
na.strings=c(""), stringsAsFactors = T)
total <- merge(MathsData, AcademicData, by="gender", all.x=TRUE)
이미지에서 알 수 있듯이 총합이라는 테이블의 병합에서 93,435 개의 행이 만들어집니다. Table
각 첫 번째 데이터 세트의 이미지를 강조 표시합니다. Academic Dataset 두 번째 데이터 집합의 이미지가 여기에 표시됩니다. MathsData
total이라는 테이블에 중복 행을 만들지 않고 두 데이터 세트를 성별로 병합하고 싶습니다.
코드 사진을 게시하지 마십시오. [R에서 훌륭한 재현 가능한 예제 만들기] (https://stackoverflow.com/a/5963610/4421870) – Mako212
나는 당신이 원하는 것에 대해 더 구체적으로 생각해야한다고 생각합니다. 보이는 출력. Gender는 두 데이터 세트에서 고유 한 ID 변수가 아니므로 병합은 기본적으로 다음과 같이 말합니다. MathsData의 모든 행에 대해 AcademicData에서 일치하는 모든 행에 해당 행을 지정합니다. AcademicData에 100 명의 소녀와 200 명의 소년이있는 경우 병합에는 MathsData에서 소녀 당 100 개의 행과 소년당 200 개의 행이 있습니다. 자세한 내용은 [R for Data Science] (http://r4ds.had.co.nz/relational-data.html#mutating-joins)에는 다양한 조인이 어떤 모습인지 보여주는 좋은 이미지가 있습니다. –