Проблема в названиях столбцов. rbind
использует заголовки столбцов для ориентации того, как они будут связывать строки. Столбцы могут быть в разных порядках, R будет использовать первый элемент для определения порядка столбцов.
В качестве альтернативы добавление другого столбца в ваши кадры данных со значением «A» или «B» в нем может сохранить вашу информацию, не помещая буквы «A» и «B» в имена столбцов < - причина вы не можете использовать rbind
. Дополнительная колонка также позволит вам делать больше анализов в R, например. регрессии и других линейных моделей.
Вот один из способов для обработки ваших данных:
Создать единый набор имен столбцов, которые могут быть использованы для фреймов данных «Blocka» и «BlockB»
final_colnames <- c("Block", "Participant", "Score1", "Score2", "Score3")
Создать новый список чтобы определить, к какому блоку принадлежат участники.
BlockA = c("A", "A", "A", "A")
Ваши предыдущие данные
ParticipantA = c("A", "B", "C", "D")
Score1A = c("21", "20", "21", "21")
Score2A = c("32", "40", "32", "31")
Score3A = c("47", "50", "43", "46")
Ярлык «Blocka» перерабатывается здесь, чтобы назвать новый кадр данных, но не перед добавлением «Blocka» список столбца «А» «А» " A "" A ".
BlockA = data.frame(BlockA, ParticipantA, Score1A, Score2A, Score3A)
Новые имена столбцов должны быть добавлены в этот момент, так что количество имен и число столбцов равны.
colnames(BlockA) <- final_colnames
Теперь вы можете добавить остальные столбцы
BlockA$Major = c("Computer_Science", "Computer_Science", "Computer_Science", "Computer_Science")
BlockA$Gender = c("Female", "Female", "Male", "Male")
BlockB тот же самый процесс
BlockB = c("B", "B", "B", "B") # the extra column
ParticipantB = c("E", "F", "G", "H")
Score1B = c("28", "28", "21", "22")
Score2B = c("30", "36", "37", "32")
Score3B = c("41", "49", "49", "46")
BlockB = data.frame(BlockB, ParticipantB, Score1B, Score2B, Score3B)
colnames(BlockB) <- final_colnames # renaming the columns
BlockB$Major = c("Medical", "Medical", "Medical", "Medical")
BlockB$Gender = c("Female", "Female", "Male", "Male")
Унифицированные имена столбцов означает, что rbind
теперь будет работать.
rbind(BlockA,BlockB)