Ошибка при создании сводной таблицы с таблицей 1: «неверная формула модели в ExtractVars» - PullRequest
1 голос
/ 16 февраля 2020

Я впервые использую пакет table1. Я пытаюсь создать сводную таблицу описательной статистики

Это мой код

data <- read_excel("correct file path", 
                      skip= 1,) 


mydata <-  data[, -c(19:40)]
i <-  c(5:18)

mydata[, i] <- apply(mydata[, i],2, function(x) as.numeric(as.character(x))) 


mydata <-  na.omit(mydata)

table1::label(dat$Sex) <- "Sex"
table1::label(dat$Age) <- "Age"
table1::label(dat$SBP) <- "SBP"
table1::label(dat$DBP) <- "DBP"
table1::label(dat$BMI) <- "BMI"
table1::label(dat$WHR) <- "waist:Hip"
table1::label(dat$`LTM %`) <- "% Lean tissue mass"
table1::label(dat$`FM %`) <- "% Fat mass"

sumtab <- table1::table1(~Sex + Age + SBP + DBP + BMI + WHR + 'LTM %' + 'FM %' , data = dat) 

Я получаю следующую ошибку

Error in terms.formula(formula, data = data) : 
  invalid model formula in ExtractVars

Я не вижу, что я ' мы сделали неправильно

1 Ответ

1 голос
/ 16 февраля 2020

Проблема заключается в одинарных кавычках ('), вместо них используйте обратные кавычки

sumtab <- table1::table1(~Sex + Age + SBP + DBP + BMI +
            WHR + `LTM %` + `FM %` , data = dat) 

Используя воспроизводимый пример

library(table1)
 table1(~ sex + age + wt  + 'LTM %', data=dat)

Ошибка в терминах. формула (формула, данные = данные): неверная формула модели в ExtractVars

одинарная кавычка приводит к ошибке, как в сообщении ОП

table1(~ sex + age + wt  + `LTM %`, data=dat) 

-выход

enter image description here

данные

set.seed(24)
dat <- expand.grid(id=1:10, sex=c("Male", "Female"), treat=c("Treated", "Placebo"))
dat$age <- runif(nrow(dat), 10, 50)
dat$age[3] <- NA  # Add a missing value
dat$wt <- exp(rnorm(nrow(dat), log(70), 0.2))
dat$`LTM %` <-  sample(40:50, nrow(dat), replace = TRUE)
label(dat$sex) <- "Sex"
label(dat$age) <- "Age"
label(dat$treat) <- "Treatment Group"
label(dat$wt) <- "Weight"
label(dat$`LTM %`) <- "% Lean tissue mass"
...