Я думаю, что это может быть более кратким, но для начала вы можете использовать это. Кроме того, я использовал округление, поэтому -1.3006813
становится -1.301
в моем коде, а не 1.300
. Также обратите внимание, что Pr...t..
- это просто имя столбца Pr(>|t|)
, плохо прочитанное.
library(plyr)
library(dplyr)
library(tidyr)
myfunction <- function(x){
x %>%
mutate(Std. = round(Std., 3),
Std.Adjusted = ifelse(Pr...t.. > 0.05, paste0(Std., "*"), ifelse(Pr...t.. < 0.05 & Pr...t.. > 0.01, paste0(Std., "**"), paste0(Std., "***")))) %>%
select(Estimate, Std.Adjusted) %>%
spread(Estimate, Std.Adjusted)
}
rbind.fill(lapply(list(mod1,mod2,mod6), myfunction))
X1 X2 X3 X4 X5 X6
1 -1.301* -12.146** 11.07* 3.29*** 0.024*** 0.183***
2 -1.318* -10.501** <NA> <NA> <NA> <NA>
3 <NA> -1.326* <NA> <NA> <NA> -1.569**
DATA:
mod1 <- read.table(text = "
Estimate Std. Error t-value Pr(>|t|)
X1 -1.3006813 1.962377480 -0.6628089 5.079128e-01
X2 -12.1455641 5.838937045 -2.0800985 3.828320e-02
X3 11.0701123 9.367725395 1.1817290 2.381590e-01
X4 3.2903167 0.690324322 4.7663346 2.810855e-06
X5 0.0240804 0.005345124 4.5051151 9.201743e-06
X6 0.1834814 0.047485944 3.8639097 1.341940e-04
", h = T)
mod2 <- read.table(text = "
Estimate Std. Error t-value Pr(>|t|)
X1 -1.3180103 1.962377480 -0.6628089 5.079128e-01
X2 -10.5006410 5.838937045 -2.0800985 3.828320e-02
", h = T)
mod6 <- read.table(text = "
Estimate Std. Error t-value Pr(>|t|)
X2 -1.3256782 1.962377480 -0.6628089 5.079128e-01
X6 -1.56931410 5.838937045 -2.0800985 3.828320e-02
", h = T)