Как показать разные цифры для каждой переменной с пакетом table1 для R? - PullRequest
0 голосов
/ 15 февраля 2020

Я создал таблицу с пакетом table1 и следовал инструкциям в этом примере 1 документации r .

Я не могу понять, как добавить разные цифры в статистику (например, годы, которые могут иметь только 2 цифры) и числовое значение qrs, которое должно иметь 4 цифры в этом примере.

Я использую этот код:

labels <- list(
  variables=list(sex="Sex",
                 age="Age (years)",
                 qrs_pre="QRS (ms)")
)

strata <- c(list(Total=df), split(df, df$sex))

my.render.cont <- function(x) {
  with(stats.apply.rounding(stats.default(x), digits=3, c("",
                                                           "Mean (SD)"=sprintf("%s (&plusmn; %s)", MEAN, SD))))
}

my.render.cat <- function(x) {
  c("", sapply(stats.default(x), function(y) with(y,
                                                  sprintf("%d (%0.0f %%)", FREQ, PCT))))
}

table1(strata, labels,
       render.continuous=my.render.cont, 
       render.categorical=my.render.cat)

С этот результат: выход table1 (imgur, это на португальском языке, но это та же идея)

Я попытался изменить цифры = 3 на цифры = c ("3", "4 "), создавая различные функции my.render.cont (но не смог применить их к render.continuous позже), а также используя операторы if и ifelse в функциях my.render.cont, но все безрезультатно.

Есть ли у кого-нибудь любезное предложение о том, как я могу это решить? Большое вам спасибо.

1 Ответ

0 голосов
/ 24 апреля 2020

Это должно работать:

my.render <- function(x, name, ...) {
  if (name == "age") {
    render.default(x=x, name=name, ..., digits=2)
  } else if (name == "qrs_pre") {
    render.default(x=x, name=name, ..., digits=4)
  } else {
    render.default(x=x, name=name, ...)
  }
}


table1(strata, labels, render=my.render)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...