R语言 使用table1函数时如何确定列顺序

bprjcwpo  于 2023-03-20  发布在  其他
关注(0)|答案(3)|浏览(299)

我正在用table 1函数制作一个表,但是它会自动按字母顺序排列行。很遗憾,我不能共享数据,但是我目前的代码看起来像这样;

table1(~ Running + Sitting + Yelling + drinking + Smoking | subject_condition, data=SDD)

我需要以特定的方式订购主题忏悔专栏。我将非常感谢任何帮助!!谢谢你:)
我的数据看起来像这样:

输出中的列按字母顺序排列;Alabastor然后Carlings然后波希米亚.我如何编辑代码,使列排列如下:波希米亚然后卡林斯,然后是阿拉巴斯特?
谢谢大家!

92dk7w1h

92dk7w1h1#

下面是一个使用iris数据集和gtsummary包的示例。最初species是按字母顺序排列的(第一个表),但如果您重构变量,它将按您喜欢的顺序显示。

library(gtsummary)


tbl_summary(iris,
            by = "Species")

iris2 <- iris %>% 
          mutate(Species = factor(Species, levels =  c("versicolor", "setosa","virginica")))

tbl_summary(iris2,
            by = "Species")
fzsnzjdm

fzsnzjdm2#

在把数据放入表1之前,你必须把数据分解到相应的列中;也可以在表1中执行。

table1(
data = datatable %>%
mutate(subjectcc = factor(subjectcc, levels = c("Alabastor",
"Carlings", "Bohemia"), ordered = T),
~Running +
Yelling +
Sitting +
Drinking +
Smoking | .... )
ha5z0ras

ha5z0ras3#

下面是一个使用mappings包的解决方案,我模拟了一些数据来进行说明。

library(table1)
library(mappings)

# Simulate sample data
set.seed(123)
SDD <- expand.grid(Participant=1:4, subject_condition=c("Alabastor", "Carlings", "Bohemia"))
SDD$Running  <- sample(1:12, nrow(SDD), replace=T)
SDD$Sitting  <- sample(1:12, nrow(SDD), replace=T)
SDD$Yelling  <- sample(1:12, nrow(SDD), replace=T)
SDD$drinking <- sample(1:12, nrow(SDD), replace=T)
SDD$Smoking  <- sample(1:12, nrow(SDD), replace=T)

column_order <- mapping(c("Bohemia", "Carlings", "Alabastor"))

table1(~ Running + Sitting + Yelling + drinking + Smoking | column_order(subject_condition), data=SDD)

相关问题