R özet.lm nesnesi için LaTeX çıktısı - tablo dışındaki bilgileri görüntülerken [kapalı]


10

Bu bana temel görünüyordu, ama çevrimiçi bir çözüm bulamıyorum, bu yüzden neyi kaçırdığımı merak ettim.

Sweave (.Rnw) belgesinin içine bir lm özet nesnesinin çıktısını dahil etmek istiyorum. Summary.lm olduğu gibi çıktı alabilir veya xtable / Hmisc paketlerini (xtable veya lateks komutları aracılığıyla) kullanabilirim. Xtable gibi, tablonun dışından elde edilebilecek özet bilgileri veren bir şey var mı? ( , F istatistikleri vb ...?)R2


Bu neden kapatılmalı? Bunun yerine SO devam etmeli mi ?!
Tal Galili

4
Bence burada kalabilir, soru istatistikçiler için, programcılardan daha alakalı.
mpiktas

Bu forumun mevcut standartlarına göre, bu kesinlikle konu dışıdır.
amip

Yanıtlar:


6

Apsrtable paketine bakın . Daha sonra çıktıyı istediğiniz gibi ayarlayabilir ve bir yerine birkaç modeli özetleyebilirsiniz.


Merhaba mpiktas. Cevap için teşekkürler. Ben birkaç tablo gösterme daha az ilgi - ve sadece bir modelin bir özeti var diliyorum, ama bu "güzel" görünecektir. Kodu açabilir ve yapabilirim, ancak daha önce yapılmadığına şaşırdım ...
Tal Galili

1
@Tal Bu yanıtı + 1'ledim, çünkü paket seçeneklerini derinlemesine araştırmak için zaman ayırmasam da istediğinizi elde etmenin bir yolu olduğundan eminim (bir kez söylediğiniz gibi birkaç model görüntülemek için kullandım).
chl

2

Ben vazgeçtim ve benzer bir şey üretmek için kod ile oynadı. Yine de en güzel şey değil. Herhangi biri onu geliştirmek gibi geliyor - kodunuzu kullanmak için mutlu olurdu.

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

Olası bir çözüm swst: Sacha Epskamp tarafından Sweave paketinde istatistiksel sonuçlar yazdırın .

Örnekler

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)

( , )p = 0,06T=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)

( , )p < 0,001chi2(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)

( , )p = 0.249F(1,18)=1.419p=0.249

swst(lm.D90)

( , )p < 0.001F(2,18)=485.051p<0.001


0

Şahsen ben iyi oynuyor ve aynı zamanda son derece özelleştirilebilir texreg zevk booktabs.

Aradığınız ama bence değil tam olarak ne bu zamanda iş bu tür için iyi bir okuma.

* Not, bu paketi yazan Philip ile hiçbir ilişkim yok. Lol.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.