我有一个回归表,我想导出到Latex。但我正在使用的对象不支持任何传统的包,如'stargazer'或'texreg'。我必须手动构建它。这是结果:
Estimate Std. Error z value
(Intercept):1 -4.652887e-01 3.149742e-01 -1.477228
x1 -3.277175e-05 1.014935e-05 -3.228952
x2 -2.446376e-05 6.717509e-06 -3.641790
x3 1.666235e+00 5.228731e-01 3.186691
x4 2.507294e-08 5.276769e-09 4.751570
我想要的是:
(Intercept) -4.652887e-01
(3.149742e-01)
x1 -3.277175e-05
(1.014935e-05)
x2 -2.446376e-05
(6.717509e-06)
x3 1.666235e+00
(5.228731e-01)
x4 2.507294e-08
(5.276769e-09)
我可以手动完成这项工作(见下文),但我正在寻找一些更具动态性的东西,我可以在几种情况下应用。
res <- matrix(NA, nrow=2*dim(ctable), ncol=1)
res[1,] <- ctable[1,1]
res[3,] <- ctable[2,1]
res[5,] <- ctable[3,1]
res[7,] <- ctable[4,1]
res[9,] <- ctable[5,1]
res[2,] <- ctable[1,2]
res[4,] <- ctable[2,2]
res[6,] <- ctable[3,2]
res[8,] <- ctable[4,2]
res[10,] <- ctable[5,2]
谢谢!
答案 0 :(得分:3)
我不知道我是否理解你的问题。但是如果你想动态创建你的表,你可以使用下面的函数。
create_table = function(table_)
{
p_table = data.frame(Variables=NA, Values=NA)
for(i in 1:dim(table_)[1])
{
est_error = table_[i,1:2] # Im assuming that you know that 2 first columns are the values that you want
name = c(rownames(table_)[i], '') # The final table rownames
name_values = cbind(Variables=name, Values=est_error)
p_table = rbind(p_table, name_values)
}
rownames(p_table) = 1:dim(p_table)[1]
return(na.omit(p_table))
}
您可以通过以下方式使用此功能。下面是使用mtcars数据集的一个示例。
ctable = summary(lm(mpg~. , data = mtcars))$coefficients
output_table = create_table(ctable)
输出就像你发布的那样。然后,使用xtable包很容易从R数据帧创建一个tex表。
xtable::xtable(output_table)