2013-06-23 4 views
-1

У меня есть два различных наборов данных, расположенных в формате колонки следующим образом:Объединение двух наборов данных в R

Dataset 1:

A B C D E 

13 1 1.7 2 1 
13 2 5.3 2 1 
13 2 2 2 1 
13 2 1.8 2 1 
1 6 27 9 1 
1 6 6.6 9 1 
1 7 17 9 1 
1 7 7.1 9 1 
1 7 8.5 9 1 

Dataset 2:

A B F G 
13 1 42 1002 
13 2 42 1002 
13 2 42 1002 
13 2 42 1002 
13 3 42 1002 
13 4 42 1002 
13 5 42 1002 
1 2 27 650 
1 3 27 650 
1 4 27 650 
1 6 27 650 
1 7 27 650 
1 7 27 650 
1 7 27 650 
1 8 27 650 

Row числа обоих наборов данных но они содержат данные для двух выборок (например, столбец A: 13 и 1 обоих наборов данных). Я хочу, чтобы значения C D и E набора данных 1 были помещены в набор данных 2, те, которые имеют одинаковые значения A и B в обоих наборах данных. Итак, объединение должно основываться на A и B. Мне нужно сделать это примерно за 47560 строк.

Я новичок в R, так должен быть благодарен, если я мог бы получить код для сохранения новых объединенного набора данных в R.

+0

Если вы делаете Объединить A и B и в одном файле у вас три экземпляра с A = 13; B = 2, а в другом файле у вас есть 3 других с этими значениями, тогда вы получите девять строк. Это то, чего вы ожидали? –

+0

Мне нужно 6 строк, из которых 3 строки заполнены, а 3 - NA. Количество строк объединенной базы данных должно быть идентичным с dataset2 – user2510725

+0

Эта спецификация непонятна, мне все равно. Вам нужно более подробно объяснить, потому что два «обычных выбора» заключались бы в том, чтобы прикрепить их бок о бок (для 3 строк) или вернуть декартово-произведение. У вас есть что-то еще в виду, но вы не объяснили это. Измените свой вопрос. –

ответ

4

Использование функции слияния в R.

Ссылки от: http://www.statmethods.net/management/merging.html

Edit: Итак, сначала вам нужно будет прочитать в наборах данных, CSV - хороший формат.

> dataset1 <- read.csv(file="dataset1.csv", head=TRUE, sep=",") 
> dataset2 <- read.csv(file="dataset2.csv", head=TRUE, sep=",") 

Если вы только что написали имена переменных и нажмите Enter, вы должны увидеть считывание ваших наборов данных. Таким образом ...

> dataset1 

следует зачитать ваши данные выше. Тогда я считаю, что должно произойти следующее ... Может быть, я ошибаюсь ...

> dataset1_2 <- merge(dataset1, dataset2, by=c("A","B")) 

EDIT 2:

> write.table(dataset1_2, "c:/dataset1_2.txt", sep=" ") 

Ссылка: http://www.statmethods.net/input/exportingdata.html

+0

Я чувствую, что это должно быть похоже на то, что вы ищете ... total <- merge (data frameA, data frameB, by = c ("A", "B")) – harmonickey

+0

Спасибо. Но как работать с двумя наборами данных в R. Могу ли я запросить код, используя этот пример набора данных – user2510725

+0

извините, это было плохое редактирование ... Я исправлю это за секунду ... – harmonickey