Объединить две плоские таблицы сопряженности (Ftable) в R?
Я делаю серию таблиц частоты / непредвиденных обстоятельств, и в идеале я хотел бы объединить их в одну
tab1 <- ftable(xtabs( ~Survived+Age, Titanic))
tab2 <- ftable(xtabs( ~Class+Age, Titanic))
rbind соединяет их вместе, но вы теряете имена строк и столбцов.
Я задаюсь вопросом, должен ли я попытаться получить уровни от переменных и вставить их (но это похоже на хороший шанс выставить неправильный порядок). Я думаю, я мог бы попытаться преобразовать в data.frame и затем объединить, но я хотел бы получить некоторый вклад.
2 ответа
Объединение таблиц не позволяет использовать несколько имен для переменных строк.
tab <- rbind(tab1, tab2)
class(tab) <- "ftable"
attr(tab, "col.vars") <- attr(tab1, "col.vars")
attr(tab, "row.vars") <- list(Var = unlist(c(attr(tab1, "row.vars"),
attr(tab2, "row.vars"))))
tab
# Age Child Adult
# Var
# No 8 8
# Yes 8 8
# 1st 4 4
# 2nd 4 4
# 3rd 4 4
# Crew 4 4
У меня тоже была эта проблема. В итоге я создал таблицы сопряженности в виде матрицы, в которой вы можете указать конкретные имена строк и столбцов, а затем преобразовать обратно в data.frame или сохранить как файл.csv.