Объединить две плоские таблицы сопряженности (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.

Другие вопросы по тегам