У меня есть 3 данных, которые называются соответственно: barometre2013, barometre2016, barometre2018.
Я уже объединил barometre2018 и barometre2016 следующим образом:
baro1618 <- merge(barometre2016, barometre2018, all = TRUE)
Все было хорошо, у меня все строки двух кадров данных и одинаковые имена столбцов объединены в одну со всеми строками кадров данных. Именно то, что я хотел.
Объединенная таблица выглядит следующим образом:
names(baro1618)
[1] "q0qc" "regio" "sexe" "age" "langu" "q1a_1" "q1a_2" "q1a_3" "q1a_4" "q1a_5"
[11] "q1a_6" "q1a_7" "q1a_8" "q1a_9" "q1a_10" "q1b_1" "q1b_2" "q1b_3" "q1b_4" "q1b_5"
[21] "q1b_6" "q1b_7" "q1b_8" "q1b_9" "q1b_10"
СЕЙЧАС, моя проблема начинается здесь.
Я хочу объединить baro1618 с barometre2013, но перед тем, как это сделать, мне нужно прописать все имена столбцов в нижнем регистре, потому что, когда я пытался объединиться без этого, столбцы в верхнем регистре barometre2013, имеющие одинаковое имя в нижнем регистре baro1618, не были не объединены.
DF barometre2013 выглядит так:
names(barometre2013)
[229] "POND" "Q1A_1" "Q1A_2" "Q1A_3" "Q1A_4" "Q1A_5" "Q1A_6" "Q1A_7" "Q1A_8" "Q1A_9" "Q1A_10" "Q1B_1"
[241] "Q1B_2" "Q1B_3" "Q1B_4" "Q1B_5" "Q1B_6" "Q1B_7" "Q1B_8" "Q1B_9" "Q1B_10" "Q5A_1" "Q5A_2" "Q5A_3"
Итак, я попробовал эти два решения в нижнем регистре (оба работают):
barometre2013 <- setnames(barometre2013, tolower(names(barometre2013)))
colnames(barometre2013) <- tolower(colnames(barometre2013))
Результат:
[229] "pond" "q1a_1" "q1a_2" "q1a_3" "q1a_4" "q1a_5" "q1a_6" "q1a_7" "q1a_8" "q1a_9" "q1a_10" "q1b_1"
[241] "q1b_2" "q1b_3" "q1b_4" "q1b_5" "q1b_6" "q1b_7" "q1b_8" "q1b_9" "q1b_10" "q5a_1" "q5a_2" "q5a_3"
НО, когда я попытался слиться следующим образом:
baro1118 <- merge(baro1618, barometre2013, all = TRUE)
Это дает мне эту ошибку:
Error in fix.by(by.x, x) : 'by' must specify a uniquely valid column
Я не понимаю, почему это работало в первом примере, а не во втором. Я не могу указать какие-либо столбцы, потому что у меня слишком много именных столбцов, которые совпадают, и много, которые не совпадают.
Должна быть возможность не указывать, верно?
Кроме того, я хочу сохранить все имена столбцов, которые совпадают, и имена, которые не соответствуют обоим df.
Извините за это длинное объяснение, но мне действительно нужен ответ, и я прочитал много вопросов и ответов на SO и не нашел свой ответ.