ОБНОВЛЕНОКомбинирование таблицы В R
я столкнулся с проблемой, при попытке выполнить простую таблицу слияния задачу R. Я искал, почему это произошло, и, если он существует, более элегантное решение. Ниже приведены точные данные, с которыми я работаю, и что произошло.
У меня есть две таблицы из обзора, касающиеся того, как различные политические партии и деловые люди думают о политической проблеме. Они поступают из двух разных наборов данных, которые я не хочу сливать (по разным причинам). Каждая информация имеет одинаковые имена для значений. Но, когда я использовал cbind
для объединения столбцов, строки обращаются к некоторым столбцам, и я не могу понять, почему.
Мои данные
library(survey)
founders.services <-
structure(c(38, 43, 131, 172, 177, 122, 34, 12, 114, 70, 17,
27), .Dim = c(2L, 6L), .Dimnames = structure(list(services = c("compete",
"similar"), party = c("skipped", "Democrat", "Independent", "Libertarian",
"Republican", "other")), .Names = c("services", "party")))
public.services.party <-
structure(c(26, 103), .Dim = 2L, .Dimnames = structure(list(services = c("similar",
"compete")), .Names = "services"), class = c("svytable", "xtabs",
"table"), call = svytable.survey.design(formula = ~services,
design = fss))
И, как я совмещаю их:
cbind(founders.services, public.services.party)
В первом (и правильно) таблицу, в колонке "либертарианский", строка "соревнуются" имеет значение 34 и «аналогичное» имеет 12. Но в комбинированной таблице (с cbind) это наоборот. Если имена были разными, они должны отображаться как разные столбцы. Но, cbind, похоже, признает, что они оба одинаковы.
Почему это происходит?
И, в более общем плане, если есть лучший способ объединить таблицы, я с удовольствием рассмотрю альтернативы. В основном, у меня есть несколько разных наборов данных, на которые отвечали одни и те же вопросы различные группы населения (политическая партия, бизнес-тип). Я не могу объединить наборы данных, но хотел бы объединить таблицы для анализа.
Спасибо, и, пожалуйста, дайте мне знать, если я могу сделать этот вопрос более ясным.
ОБНОВЛЕНО: с кодом и таблицами.
Вот правильная таблица
services skipped Democrat Independent Libertarian Republican other
compete 38 131 177 34 114 17
similar 43 172 122 12 70 27
Здесь комбинированный стол с ошибкой. вам понадобится пакет «опрос» для репликации.
founders.services skipped Democrat Independent Libertarian Republican other
similar 26 38 131 177 34 114 17
compete 103 43 172 122 12 70 27
Если вы используете пакет, пожалуйста, бросьте 'библиотека (my_needed_package)' строки в код. – Frank
Вы можете сделать это более ясным, добавив вывод, который вы получаете от cbind, и ожидаемый результат. В моем случае я прокомментировал вашу функцию svytable и попробовал ее, и не видел описанного вами поведения - я думаю ... не уверен, потому что я мог бы неправильно интерпретировать ваш текст. –
ОК спасибо! @Frank я добавил, что вам нужен пакет опроса R (я сделал это правильно?) – tom