2016-01-02 4 views
-1

у меня есть 2 CSV файлы, которые я хочу, чтобы объединить на связной ключе:объединить таблицы в R на указанных полях

results.csv заголовки столбцов:

schoolID, schoolName, Easting, Northing 
123933, Mark College, 338371, 147812 
139335, Hemsworth Arts and Community Academy, 442859, 413420 
107563, Sowerby Bridge High School, 406122, 424146 
137706, Willenhall E-ACT Academy, 398288, 300042 

schools.csv заголовки столбцов:

URN, LA (code), LA (name), EstablishmentNumber, EstablishmentName 
123933, 201, City of London, 3614, Mark College 
100001, 202, Camden, 6005, City of London School for Girls 
139335, 201, City of London, 6006, Hemsworth Arts and Community Academy 
100003, 201, City of London, 6007, City of London School 

URN == schoolID и я хочу, конечный файл с указанием данных под заголовками столбцов:

schoolID, schoolName, Easting, Northing, LA (name) 

Я попытался следующий код:

res_data <- read.csv("C:/results.csv", 
         head=TRUE,sep=",") 

school_data <- read.csv("C:/schools.csv", 
         head=TRUE,sep=",") 

merge_data <- merge(x = res_data , y = school_data[c(1,3),], by.x = "schoolID", by.y = "URN") 

head(merge_data, 3) 

Но результат просто сливаясь все заголовки, а не данные:

schoolID, schoolName, плановыми, Northing, URN, LA (код), LA (имя), EstablishmentNumber, EstablishmentName

+0

, потому что я хочу «» LA (имя) «» данные из файла CSV и ничего не должны быть соединены – pluke

+0

никакой разницы, в результате слияния просто слияние всех заголовков с 0 элементами данных: <0 rows> (или 0- length row.names). Есть обновленный вопрос – pluke

+0

Можете ли вы добавить несколько строк из каждого из csvs? Предположительно некоторые из них соответствуют. – CAFEBABE

ответ

3

Испытано с прилагаемыми данными испытаний

merge_data <- merge(x = res_data , y = school_data[,c(1,3)], by.x = "schoolID", by.y = "URN") 

(ДВА изменения!)

Я думаю, что вы вырезать третью строку вместо третьего столбца из school_data. Вам также необходимо включить столбец слияния.

+0

Это и поддержка комментариев выше решает. Вы должны иметь столбец поиска в y = school_data [c (3),] переходит к: y = school_data [, c (1,3)] – pluke

+1

Я просто обновляю объяснение на основе предоставленных данных. Благодарю. Я думаю, что c (1,3) более изящна для вашей цели. – CAFEBABE

Смежные вопросы