2016-12-21 1 views
2

summary zeigt den Bedeutungscode für p.values ​​an. Gibt es eine R-Funktion, die p.value in einen Signifikanzcode umwandelt? zum Beispiel: 0.02 ->'*' und 0.005 ->'**'?Gibt es eine R-Funktion, die p.value in einen Signifikanzcode umwandelt?

+0

Versuchen Sie mit 'stars.pval (p.value)' aus dem 'gtools' Paket – etienne

+1

@ZheyuanLi etwas wie 'cut (x, Brüche = c (0, 0.001, 0.01, 0.05, 0.1, 1), include.lowest = T, Labels = c ('***', '**', '*', '.') , ')) '? – mt1022

Antwort

6

Versuchen Sie dies. Keine Pakete werden verwendet. Versuchen Sie ?symnum für weitere Informationen.

p.values <- c(9.5e-15, 0.02) 
Signif <- symnum(p.values, corr = FALSE, na = FALSE, cutpoints = c(0, 
    0.001, 0.01, 0.05, 0.1, 1), symbols = c("***", "**", "*", ".", " ")) 

geben:

> str(Signif) 
Class 'noquote' atomic [1:2] *** * 
    ..- attr(*, "legend")= chr "0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1" 

Der obige Code wird in R verwendet, selbst in stats::printCoefmat (versuchen ?printCoefmat), die sich von stats:::print.summary.lm genannt wird. Beachten Sie, dass es ein Objekt der Klasse "noquote" erzeugt und auch eine Legende im Attribut "legend" bereitstellt.

3

der von summary verwendeten Code der Spur, können Sie die folgenden in stats:::printCoefmat finden:

Signif <- symnum(pv, corr = FALSE, na = FALSE, 
       cutpoints = c(0, 0.001, 0.01, 0.05, 0.1, 1), 
       symbols = c("***", "**", "*", ".", " ")) 

Sie können Ihre eigene Funktion erstellen, es zu tun, wie

signif.num <- function(x) { 
    symnum(x, corr = FALSE, na = FALSE, legend = FALSE, 
      cutpoints = c(0, 0.001, 0.01, 0.05, 0.1, 1), 
      symbols = c("***", "**", "*", ".", " ")) 
} 
signif.num(c(1e-8, 0.01, 0.05, 0.1, 0.2)) 

(Beachten Sie die letzte Wert ist nur ein Leerzeichen und in der Ausgabe nicht sichtbar)

Verwandte Themen