5

我想从 Pr(>|t|) 列中提取值

library(lsmeans)    
warp.lm = lm(breaks ~ wool * tension, data = warpbreaks)
toP<-lsmeans(warp.lm, pairwise ~ wool | tension, glhargs=list())
toP[[2]]

         Simultaneous Tests for General Linear Hypotheses

Fit: lm(formula = breaks ~ wool * tension, data = warpbreaks)

Linear Hypotheses:
               Estimate Std. Error t value Pr(>|t|)   
A - B | L == 0   16.333      5.157   3.167  0.00797 **
A - B | M == 0   -4.778      5.157  -0.926  0.73187   
A - B | H == 0    5.778      5.157   1.120  0.60282   
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
(Adjusted p values reported -- single-step method)

这该怎么做?class(toP[[2]])说吧"summary.glht" "glht"。toP[[2]][9] 中有 $pvalues 但 toP[[2]][9]$pvalues 给出 NULL

4

2 回答 2

7

如果您想知道可以访问给定对象的“元素”,请不要使用class,请使用names

R> names(toP[[2]])
[1] "model"       "linfct"      "rhs"         "coef"        "vcov"       
[6] "df"          "alternative" "type"        "test"       

在这里,您可以看到有一个名为 的元素test。让我们看一下:

R> names(toP[[2]]$test)
[1] "pfunction"    "qfunction"    "coefficients" "sigma"       
[5] "tstat"        "pvalues"      "type"        

嗯,有一个元素叫做pvalues. 听起来不错。您可以通过以下方式访问它:

R> toP[[2]]$test$pvalues
[1] 0.007954354 0.731843623 0.602840958
attr(,"error")
[1] 7.579683e-05

在这里你得到你的p值......

获取对象结构的另一种方法是使用str(). 应用于您的案例 ( str(toP[[2]])) 它会导致输出有点长,但可以让您直接确定访问 p 值的方式。

于 2013-02-12T13:00:07.803 回答
2

你试过了吗:

 toP[[2]]$test$pvalues
于 2013-02-12T12:56:16.687 回答