R中

2013-10-28 24 views
3

提取P-SIGN價值 - 測試 - 封裝BSDA我需要提取包BSDA從SIGN.test功能的p值:R中

> library(BSDA) 
> x <- c(7.8, 6.6, 6.5, 7.4, 7.3, 7., 6.4, 7.1, 6.7, 7.6, 6.8) 
> t1=SIGN.test(x,md=6.5) 

     One-sample Sign-Test 

data: x 
s = 9, p-value = 0.02148 
alternative hypothesis: true median is not equal to 6.5 
95 percent confidence interval: 
6.571273 7.457455 
sample estimates: 
median of x 
      7  

但我收到以下錯誤:

> t1$p.value 
Error in t1$p.value : $ operator is invalid for atomic vectors 

我也試過str(t1)沒用。

> str(t1) 
num [1:3, 1:3] 0.935 0.95 0.988 6.6 6.571 ... 
- attr(*, "dimnames")=List of 2 
    ..$ : chr [1:3] "Lower Achieved CI" "Interpolated CI" "Upper Achieved CI" 
    ..$ : chr [1:3] "Conf.Level" "L.E.pt" "U.E.pt" 
+0

什麼'STR(T1)'的輸出? – Aaron

+0

Aaron:我爲'str(t1)'添加了輸出。 – Stat

+1

謝謝,這是意想不到的! – Aaron

回答

4

我看着該函數的代碼,它似乎不包括在輸出中,除非特定的準則(k<1)被滿足,其中k是在函數內定義。這不是文件所說的應該做的。您的選擇可能是將功能的修改版本放在您自己的工作區中;你需要做的就是更換最後兩行

print(rval) 
return(Confidence.Intervals) 

只有

return(rval) 

你不會得到你得到的置信區間,但你也許可以添加這些到輸出列表如果你想爲好,以

rval$Confidence.Intervals <- Confidence.Intervals 
return(rval) 

它也可能是值得聯繫包維護者,雖然它看起來並不像它已經自2012年3月更新,無論那是值得的。

+0

非常感謝亞倫。 – Stat

1

我面臨同樣的問題,一位優秀的R程序員修改了我的代碼以提取p值。

只要做到這一點。你的問題將得到解決。

1)發送行只寫SIGN.test,它會告訴你的功能,將它複製,將其命名爲任何你喜歡的,那麼文本在步驟2中複製並替代的職能最終行.. 。

2)

print(rval) 
list(rval,Confidence.Intervals) 
} 
} 

3)請注意,最後系是

print(rval) 
     return(Confidence.Intervals) 
    } 
} 
<environment: namespace:BSDA> 

在步驟2

4)由線替換他們,如果我們將其命名我的功能,並存儲在RES功能的結果,那麼p值被寫這篇提取。

輸入

res<-my(x,md=6.5) 

輸出

res[[1]]$p.value [1] 0.02148438; where x is your vector

參考: - https://www.facebook.com/groups/rusers/10152075287578740/