ПРИМЕЧАНИЕ - я имею в виду функцию «table1», а не «tableOne»
Как вы, возможно, знаете, пакет table1 суммирует данные в таблицу, помещая некоторую переменную во все остальные (например, сколько мужчин против женщин)- курили, получали наркотики и т. д.)
Очень хорошие рекомендации по поводу функции table1 здесь.
https://cran.r -project.org / web / packages / table1 / vignettes/table1-examples.html
В самой нижней части сайта ссылок выше вы можете увидеть писателя, создающего столбец p-значения, используя трюк, поскольку команда не встроена в table1.Дело в том, что с его кодом нет проблем, поскольку он имеет дело только с «мужским» и «женским» (2 переменные) .. и я пытаюсь сделать это с 4 переменными.
Я подгоняю его так, чтобы онмогу использовать мои переменные, я получаю ошибку и нуждаюсь в помощи
ОШИБКА
"Аргумент не числовой или логический: возврат NACalling var (x) для множителя x устарел и станет ошибкой.Используйте что-то вроде 'all (duplicated (x) [- 1L])', чтобы проверить постоянный вектор. Ошибка в if (stderr <10 * .Machine $ double.eps * max (abs (mx), abs (my))) stop («данные по существу постоянны»): пропущенное значение там, где требуется ИСТИНА / ЛОЖЬ »</p>
a <- c(0,13.3,14.0,14.7,15.8,999.0)
dat1$RDWquintiles<-cut(dat1$RDW_pre,a,include.lowest = TRUE)
z <- levels(dat1$RDWquintiles)
dat1$RDWquintiles <- factor(dat1$RDWquintiles,levels=c(z,factor("P-value")),labels=c("0,13.3","13.3,14","14,14.7","14.7,15.8","15.8,999","P-values" ))
dat1$RDWquintiles
table(dat1$RDWquintiles)
rndr <- function(x, name, ...) {
if (length(x) == 0) {
y <- dat1[[name]]
s <- rep("", length(render.default(x=y, name=name, ...)))
if (is.numeric(y)) {
p <- t.test(y, dat1$RDWquintiles)$p.value
} else {
p <- chisq.test(table(y, droplevels(dat1$RDWquintiles)))$p.value
}
s[2] <- sub("<", "<", format.pval(p, digits=3, eps=0.001))
s
} else {
render.default(x=x, name=name, ... ,)
}
}
rndr.strat <- function(label, n, ...) {
ifelse(n==0, label, render.strat.default(label, n, ...))
}
table1(~ Age + Sex + LOS + Open + adm_PE |RDWquintiles,data=dat1, droplevels=F, render=rndr, render.strat=rndr.strat, overall=F)