2016-01-11 2 views
-4

Я пытаюсь добавить один кадр данных в виде строк в другой фрейм данных. Имена столбцов не совпадают, поэтому у меня есть таблица поиска, которая соответствует им. Я думал, что смогу сделать каждый столбец один за раз в цикле, но я продолжаю получать ошибку replacement has 209 rows, data has 157.Добавить фрейм данных в другой фрейм данных с разными именами столбцов

Как я могу добавить их все сразу? Вот пример того, что я пытаюсь сделать:

У меня есть два наборов данных

test1 = c("one", "two", "three", "four", "five") 
test2 = c("1", "3", "4", "5") 

И таблицу поиска, чтобы соответствовать именам столбцов

first second 
1 one  1 
2 three  3 
3 four  4 
4 five  5 

Так что я бы например, добавить все строки из «1» в «один», «3» в «три» и т. д. Я пробовал несколько разных вещей и получил ошибки либо о количестве строк, либо о том, что у меня нет замены для каждого значения, как в моем примере, я игнорирую столбец «два».

Может ли кто-нибудь порекомендовать, как это сделать?

+0

Можете ли вы показать свой ожидаемый результат? И почему вы называете наборы векторов векторов? – Heroka

ответ

1

Есть ли причина, по которой вы возражаете против того, чтобы имена двух наборов были одинаковыми?

rbind будет работать в этом случае очень хорошо, и вы можете просто использовать что-то вроде names(test2) <- lookup_table$first, чтобы имена совпадали.

+0

Это хорошая идея, я не против этого. Как бы я это сделал? Использование 'for (i in nrows (lookup) {colnames (test1) [lookup [i, 1]]}' не работает, потому что 'colnames (test1) [lookup [1,1]]' возвращает 'NA' – jamzsabb

+0

I должен пояснить, что причина, по которой я не использую то, что вы предположили, заключается в том, что порядок столбцов не совпадает в моей базе данных, мне нужно посмотреть, какое имя получает сопоставление с тем, что – jamzsabb

+0

'rbind.fill()' частично разрешено это для меня, но я все еще не могу понять, как изменить имена переменных из таблицы поиска – jamzsabb

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