Отразить порядок столбцов / строк в таблице - PullRequest
0 голосов
/ 26 ноября 2018

Я использую пакет epiR, так как он делает хорошие 2 на 2 таблицы сопряженности с коэффициентами шансов и долями, относящимися к населению.

Как обычно, мои данные кодируются 0 = Нет 1 = Да

Так что, когда я делаю

tabele(var_1,var_2)

Вывод получается в виде таблицы, выровненной как

enter image description here

Для его ввода, хотяepiR хочет, чтобы верхний левый квадрат был Exposed + VE Outcome + VE - т.е. верхний левый квадрат должен быть Var 1 == 1 и Var 2 == 1

В настоящее время я делаю это путем перекодирования нулей в 2 илиальтернативно, устанавливая в качестве фактора и используя повторный уровень.И то, и другое немного раздражает для других анализов, так как в целом я хочу, чтобы Outcome + VE пришел после Outcome-VE

Поэтому я подумал, есть ли простой способ (? Внутри таблицы) изменить ориентацию таблицы так,что это по существу инвертирует порядок строк / столбцов?

Надеюсь, что вышесказанное имеет смысл - с удовольствием предоставлю разъяснения, если нет.


Редактировать: Спасибо запредложения ниже;просто для пояснения я хочу иметь возможность сделать это при вызове таблицы из существующей переменной dataframe - то есть когда я делаю таблицу (data $ var_1, data $ var_2) - в идеале, без необходимости создавать совершенно новый объект

Ответы [ 2 ]

0 голосов
/ 26 ноября 2018

Использование уровней факторов:

# reproducible example (adapted from Roman's answer)
df1 <- data.frame(value = rbinom(100, size = 1, prob = 0.5),
                  variable = letters[1:2])

table(df1)
#      variable
# value  a  b
#     0 32 23
#     1 18 27

#convert to factor, specify levels
df1$value <- factor(df1$value, levels = c("1", "0"))
df1$variable <- factor(df1$variable, levels = c("b", "a"))

table(df1)
#      variable
# value  b  a
#     1 24 26
#     0 26 24
0 голосов
/ 26 ноября 2018

Таблица представляет собой простую матрицу.Вы можете просто вызывать индексы в обратном порядке.

xy <- table(data.frame(value = rbinom(100, size = 1, prob = 0.5),
           variable = letters[1:2]))

     variable
value  a  b
    0 20 22
    1 30 28

xy[2:1, 2:1]

     variable
value  b  a
    1 20 30
    0 30 20
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...