Tel qu'utilisé par le printCoefmat
dans R, vous pouvez également utiliser la fonction symnum
de la fonction stats
(inclus dans la base r) :
pv <- c(0.00001, 0.002, 0.02, 0.06, 0.12, 0.99)
stars <- symnum(pv, corr = FALSE, na = FALSE,
cutpoints = c(0, 0.001, 0.01, 0.05, 0.1, 1),
symbols = c("***", "**", "*", ".", " "))
# fetch the stars only
as.character(stars)
#> [1] "***" "**" "*" "." " " " "
# fetch the legend description
attr(stars, "legend")
#> [1] "0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1"
Créé le 2018-09-10 par le paquet reprex (v0.2.0).
Ou, pour répondre précisément à votre question, vous pouvez l'utiliser comme suit
library(dplyr)
pv <- c(0.00001, 0.002, 0.02, 0.06, 0.12, 0.99)
star_function <- function(x) {
symnum(x, corr = FALSE, na = FALSE,
cutpoints = c(0, 0.001, 0.01, 0.05, 0.1, 1),
symbols = c("***", "**", "*", ".", " "))
}
stars <- star_function(pv)
# fetch the stars only
as.character(stars)
#> [1] "***" "**" "*" "." " " " "
# fetch the legend description
attr(stars, "legend")
#> [1] "0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1"
mtcars %>%
stats::lm(mpg ~ wt + qsec, .) %>%
broom::tidy(.) %>%
mutate(sign = as.character(star_function(p.value)))
#> # A tibble: 3 x 6
#> term estimate std.error statistic p.value sign
#> <chr> <dbl> <dbl> <dbl> <dbl> <chr>
#> 1 (Intercept) 19.7 5.25 3.76 7.65e- 4 ***
#> 2 wt -5.05 0.484 -10.4 2.52e-11 ***
#> 3 qsec 0.929 0.265 3.51 1.50e- 3 **
Créé le 2018-09-10 par le paquet reprex (v0.2.0).