gpt4 book ai didi

r - 合并两个表并为 R 中的每个表添加标题

转载 作者:行者123 更新时间:2023-12-03 21:13:18 25 4
gpt4 key购买 nike

我想并排显示两个回归分析的结果,比如说逻辑回归和 COX 回归。变量以行形式呈现,p、OR/HR 和置信区间的相应数据以列形式呈现。因此,列名称不匹配:OR 位于左侧,HR 位于右侧。

我尝试了 cbind,但遇到了以下问题:

(1) 如果由于变量选择而导致一个变量(行)仅出现在一张表中怎么办?在这种情况下,在将两者组合时,另一个表中必须有一个空白行。

(2) 两个表合并后,如何添加跨越每个表的四列的标题,以便将它们标记为逻辑或 COX?

我正在寻找的输出将通过 xtable 显示为 latex 表:

   | Logistic regression          | COX regression
| p | OR | 2.5% | 97.5% | p | HR | 2.5% | 97.5%
v1 | 0.849 | 0.936 | ... | ... | | | |
v2 | 0.249 | 0.595 | ... | ... | 0.026 | 1.916 | ... | ...
v3 | | | | | 0.023 | 0.140 | ... | ...

这里是一些示例代码:

library(xtable);library(survival)
# Creating a sample data frame
set.seed(1234)
event <- as.numeric(round(rnorm(10,5,5))>1);tte<-abs(round(rnorm(10,5,5)))
v1 <- round(rnorm(10,5,5));v2 <- round(rnorm(10,2,5));v3 <- round(rnorm(10,1,5))
df<-data.frame(event, tte, v1, v2, v3)

# Some logistic regression ...
LogReg <- glm(event~v1+v2,family=binomial,data=df)
LogRegTable<-round(cbind(summary(LogReg)$coef[, "Pr(>|z|)"], exp(coef(LogReg)), exp(confint(LogReg))),3)
colnames(LogRegTable)<-c("p","OR","2.5%","97.5%")
LogRegTable<-LogRegTable[!rownames(LogRegTable)=="(Intercept)",]

# ... and some COX regression
CoxReg <- coxph(Surv(df$tte, df$event)~v2+v3,data=df)
CoxRegTable<-round(cbind(summary(CoxReg)$coef[, "Pr(>|z|)"], exp(coef(CoxReg)), exp(confint(CoxReg))),3)
colnames(CoxRegTable)<-c("p","HR","2.5%","97.5%")

# There we go
LogRegTable
CoxRegTable

# Now, how to get them in one table?
xtable(
cbind(LogRegTable, CoxRegTable)
)
# ... messes up the correct row names

最佳答案

MrFlick建议,您可以使用 merge() 比使用 cbind 更有效地执行此操作。

您可以按如下方式使用 merge():

xtable <- merge(LogRegTable, CoxRegTable, by.x = "p", by.y = "p", all = TRUE)

在本例中,by.x 和 by.y 引用您要合并的列。如果两个表中的列名称相同(如本例所示),则您可以仅使用 by = "p",但此方法(使用 by.x 和 by.y)允许您合并两个不同的列标题。

all = TRUE 将强制合并表保留两个表中的所有行,即使它们不共享 p 值。如果您将其更改为 FALSE,那么它将删除 p 值在两个表中都不存在的所有行。

如果您想重命名之后的列名称(尽管您的列名称应该已令人满意地保留),您可以使用 colnames() 如下:

colnames(xtable) <- c("col1_name", "col2_name", etc)

关于r - 合并两个表并为 R 中的每个表添加标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24098295/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com