Output LaTeX untuk objek summary.lm R - sambil menampilkan informasi di luar tabel [ditutup]


10

Bagi saya ini kelihatannya mendasar, tetapi sepertinya saya tidak dapat menemukan solusi online, jadi saya bertanya-tanya apa yang mungkin saya lewatkan.

Saya ingin memasukkan keluaran dari objek ringkasan lm di dalam dokumen Sweave (.Rnw). Saya dapat menampilkan ringkasan.lm apa adanya, atau menggunakan paket xtable / Hmisc (melalui perintah xtable atau lateks). Apakah ada sesuatu seperti xtable yang juga memberikan informasi ringkasan yang tersedia dari luar tabel? ( , statistik F dll ...?)R2


Mengapa ini harus ditutup? Haruskah itu jadi SO ?!
Tal Galili

4
Saya pikir itu bisa tetap di sini, pertanyaannya lebih relevan untuk ahli statistik, daripada untuk programmer.
mpiktas

Menurut standar forum ini, ini jelas di luar topik.
amoeba

Jawaban:


6

Lihat paket apsrtable . Anda dapat men-tweak kemudian output seperti yang Anda inginkan, dan merangkum beberapa model, bukan satu.


Hai mpiktas. Terima kasih atas tanggapannya. Saya kurang tertarik menampilkan beberapa tabel - dan berharap hanya memiliki ringkasan satu model, tetapi itu akan terlihat "bagus". Saya dapat membuka kode dan melakukannya, tetapi saya terkejut bahwa itu tidak dilakukan sebelumnya ...
Tal Galili

1
@Tal Saya sudah memberi +1 respons ini karena saya cukup yakin ada cara untuk mencapai apa yang Anda inginkan walaupun saya tidak meluangkan waktu untuk menyelidiki opsi paket secara mendalam (saya pernah menggunakannya untuk menampilkan beberapa model seperti yang Anda katakan).
chl

2

Saya menyerah dan bermain dengan kode untuk menghasilkan sesuatu yang serupa. Bukan hal yang tercantik sekalipun. Jika ada yang ingin memperbaikinya - saya akan senang menggunakan kode Anda.

print.summary.lm.xtable <- function (x, digits = max(3, getOption("digits") - 3), symbolic.cor = x$symbolic.cor, 
    signif.stars = getOption("show.signif.stars"), ...) 
{

if(!require(xtable)) stop("This function requires the package 'xtable' - please make sure you get it")


cat("\\begin{verbatim}")

    cat("\nCall:\n", paste(deparse(x$call), sep = "\n", collapse = "\n"), 
        "\n\n", sep = "")
    resid <- x$residuals
    df <- x$df
    rdf <- df[2L]
    cat(if (!is.null(x$w) && diff(range(x$w))) 
        "Weighted ", "Residuals:\n", sep = "")
    if (rdf > 5L) {
        nam <- c("Min", "1Q", "Median", "3Q", "Max")
        rq <- if (length(dim(resid)) == 2L) 
            structure(apply(t(resid), 1L, quantile), dimnames = list(nam, 
                dimnames(resid)[[2L]]))
        else {
            zz <- zapsmall(quantile(resid), digits + 1)
            structure(zz, names = nam)
        }
        print(rq, digits = digits, ...)
    }
    else if (rdf > 0L) {
        print(resid, digits = digits, ...)
    }
    else {
        cat("ALL", df[1L], "residuals are 0: no residual degrees of freedom!\n")
    }
#     if (length(x$aliased) == 0L) {
#         cat("\nNo Coefficients\n")
#     }
#     else {
#         if (nsingular <- df[3L] - df[1L]) 
#             cat("\nCoefficients: (", nsingular, " not defined because of singularities)\n", 
#                 sep = "")
#         else cat("\nCoefficients:\n")
#         coefs <- x$coefficients
#         if (!is.null(aliased <- x$aliased) && any(aliased)) {
#             cn <- names(aliased)
#             coefs <- matrix(NA, length(aliased), 4, dimnames = list(cn, 
#                 colnames(coefs)))
#             coefs[!aliased, ] <- x$coefficients
#         }
#         printCoefmat(coefs, digits = digits, signif.stars = signif.stars, 
#             na.print = "NA", ...)
#     }


cat("\\end{verbatim}")

print(xtable(x),   latex.environments = "left") # x is a summary of some lm object

cat("\\begin{verbatim}")
    cat("Residual standard error:", format(signif(x$sigma, 
        digits)), "on", rdf, "degrees of freedom\n")
    if (nzchar(mess <- naprint(x$na.action))) 
        cat("  (", mess, ")\n", sep = "")
    if (!is.null(x$fstatistic)) {
        cat("Multiple R-squared:", formatC(x$r.squared, digits = digits))
        cat(",\tAdjusted R-squared:", formatC(x$adj.r.squared, 
            digits = digits), "\nF-statistic:", formatC(x$fstatistic[1L], 
            digits = digits), "on", x$fstatistic[2L], "and", 
            x$fstatistic[3L], "DF,  p-value:", format.pval(pf(x$fstatistic[1L], 
                x$fstatistic[2L], x$fstatistic[3L], lower.tail = FALSE), 
                digits = digits), "\n")
    }
    correl <- x$correlation
    if (!is.null(correl)) {
        p <- NCOL(correl)
        if (p > 1L) {
            cat("\nCorrelation of Coefficients:\n")
            if (is.logical(symbolic.cor) && symbolic.cor) {
                print(symnum(correl, abbr.colnames = NULL))
            }
            else {
                correl <- format(round(correl, 2), nsmall = 2, 
                  digits = digits)
                correl[!lower.tri(correl)] <- ""
                print(correl[-1, -p, drop = FALSE], quote = FALSE)
            }
        }
    }
    cat("\n")
cat("\\end{verbatim}")
    invisible(x)
}

2

Salah satu solusi yang mungkin adalah swst: Mencetak hasil statistik dalam paket Sweave oleh Sacha Epskamp .

Contohnya

library(swst)
x <- c(44.4, 45.9, 41.9, 53.3, 44.7, 44.1, 50.7, 45.2, 60.1)
y <- c( 2.6, 3.1, 2.5, 5.0, 3.6, 4.0, 5.2, 2.8, 3.8)
corTest <- cor.test(x, y, method = "kendall", alternative = "greater")
swst(corTest)

T=26p=0.06

# Chi-square test:
M <- as.table(rbind(c(762, 327, 468), c(484,239,477)))
dimnames(M) <- list(gender=c("M","F"),
party=c("Democrat","Independent", "Republican"))
chisqTest <- chisq.test(M)
swst(chisqTest)

(chi2(2)=30.07p<0.001

# Linear model:
## Annette Dobson (1990) "An Introduction to Generalized Linear Models".
## Page 9: Plant Weight Data.
ctl <- c(4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14)
trt <- c(4.81,4.17,4.41,3.59,5.87,3.83,6.03,4.89,4.32,4.69)
group <- gl(2,10,20, labels=c("Ctl","Trt"))
weight <- c(ctl, trt)
lm.D9 <- lm(weight ~ group)
lm.D90 <- lm(weight ~ group - 1) # omitting intercept
swst(lm.D9)

F(1,18)=1.419p=0.249

swst(lm.D90)

F(2,18)=485.051p<0.001


0

Secara pribadi saya menikmati texreg , yang bermain bagus dengan booktabsdan juga sangat disesuaikan.

Tidak persis apa yang Anda cari, tetapi saya pikir ini juga bacaan yang bagus untuk pekerjaan semacam ini.

* Catatan, saya tidak ada hubungannya dengan Philip yang menulis paket itu. Lol.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.