summary.glm 功能的 MagrittR T 型管道。简单问题
MagrittR T-pipe for the summary.glm function. Simple issue
我实际上 运行 遇到了 T 管的问题。我正在尝试在同一条链中做 3 件事:
- 适合我的 GLM
- 保存在变量中
- 打印它的摘要
所以我正在尝试以下语法:
my_variable <- data %>%
glm(Responce ~ Variables, family) %T>%
summary
没有按预期工作。 glm 已安装,但摘要不会自行显示。所以我不得不把它分成两条链:
my_variable <- data %>%
glm(Responce ~ Variables, family)
my_variable %>% summary
所以我在想:要么我没有得到 T 型管道的功能,要么它没有正确编码并且混淆了汇总功能。
因为如果我尝试:
my_variable <- data %>%
glm(Responce ~ Variables, family) %T>%
plot
效果很好。
一些想法?
我不明白,为什么您需要在此处 %T>%
。如果你想强制打印,只需使用常规管道并添加 print()
到你的管道。但是请记住,使用这种方法,您将摘要存储在 my_variable
中,而不是模型本身。
library(magrittr)
my_variable <- my_data %>%
glm(counts ~ outcome + treatment, family = poisson(), data = .) %>%
summary() %>%
print()
#>
#> Call:
#> glm(formula = counts ~ outcome + treatment, family = poisson(),
#> data = .)
#>
#> Deviance Residuals:
#> 1 2 3 4 5 6 7
#> -0.67125 0.96272 -0.16965 -0.21999 -0.95552 1.04939 0.84715
#> 8 9
#> -0.09167 -0.96656
#>
#> Coefficients:
#> Estimate Std. Error z value Pr(>|z|)
#> (Intercept) 3.045e+00 1.709e-01 17.815 <2e-16 ***
#> outcome2 -4.543e-01 2.022e-01 -2.247 0.0246 *
#> outcome3 -2.930e-01 1.927e-01 -1.520 0.1285
#> treatment2 1.338e-15 2.000e-01 0.000 1.0000
#> treatment3 1.421e-15 2.000e-01 0.000 1.0000
#> ---
#> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#>
#> (Dispersion parameter for poisson family taken to be 1)
#>
#> Null deviance: 10.5814 on 8 degrees of freedom
#> Residual deviance: 5.1291 on 4 degrees of freedom
#> AIC: 56.761
#>
#> Number of Fisher Scoring iterations: 4
数据
counts <- c(18,17,15,20,10,20,25,13,12)
outcome <- gl(3,1,9)
treatment <- gl(3,3)
my_data <- data.frame(treatment, outcome, counts)
当您在控制台中键入 summary(something)
时,print
将被隐式调用。在您的管道调用中并非如此,因此您需要显式调用 print
.
因为 %T>%
的取消分支仅适用于一次操作,所以您必须编写 print
和 summary
:
my_variable <- data %>%
glm(Responce ~ Variables, family) %T>%
{print(summary(.)}
您需要花括号和点,否则 glm
输出将作为第一个参数传递给 print
。
我实际上 运行 遇到了 T 管的问题。我正在尝试在同一条链中做 3 件事:
- 适合我的 GLM
- 保存在变量中
- 打印它的摘要
所以我正在尝试以下语法:
my_variable <- data %>%
glm(Responce ~ Variables, family) %T>%
summary
没有按预期工作。 glm 已安装,但摘要不会自行显示。所以我不得不把它分成两条链:
my_variable <- data %>%
glm(Responce ~ Variables, family)
my_variable %>% summary
所以我在想:要么我没有得到 T 型管道的功能,要么它没有正确编码并且混淆了汇总功能。
因为如果我尝试:
my_variable <- data %>%
glm(Responce ~ Variables, family) %T>%
plot
效果很好。
一些想法?
我不明白,为什么您需要在此处 %T>%
。如果你想强制打印,只需使用常规管道并添加 print()
到你的管道。但是请记住,使用这种方法,您将摘要存储在 my_variable
中,而不是模型本身。
library(magrittr)
my_variable <- my_data %>%
glm(counts ~ outcome + treatment, family = poisson(), data = .) %>%
summary() %>%
print()
#>
#> Call:
#> glm(formula = counts ~ outcome + treatment, family = poisson(),
#> data = .)
#>
#> Deviance Residuals:
#> 1 2 3 4 5 6 7
#> -0.67125 0.96272 -0.16965 -0.21999 -0.95552 1.04939 0.84715
#> 8 9
#> -0.09167 -0.96656
#>
#> Coefficients:
#> Estimate Std. Error z value Pr(>|z|)
#> (Intercept) 3.045e+00 1.709e-01 17.815 <2e-16 ***
#> outcome2 -4.543e-01 2.022e-01 -2.247 0.0246 *
#> outcome3 -2.930e-01 1.927e-01 -1.520 0.1285
#> treatment2 1.338e-15 2.000e-01 0.000 1.0000
#> treatment3 1.421e-15 2.000e-01 0.000 1.0000
#> ---
#> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#>
#> (Dispersion parameter for poisson family taken to be 1)
#>
#> Null deviance: 10.5814 on 8 degrees of freedom
#> Residual deviance: 5.1291 on 4 degrees of freedom
#> AIC: 56.761
#>
#> Number of Fisher Scoring iterations: 4
数据
counts <- c(18,17,15,20,10,20,25,13,12)
outcome <- gl(3,1,9)
treatment <- gl(3,3)
my_data <- data.frame(treatment, outcome, counts)
当您在控制台中键入 summary(something)
时,print
将被隐式调用。在您的管道调用中并非如此,因此您需要显式调用 print
.
因为 %T>%
的取消分支仅适用于一次操作,所以您必须编写 print
和 summary
:
my_variable <- data %>%
glm(Responce ~ Variables, family) %T>%
{print(summary(.)}
您需要花括号和点,否则 glm
输出将作为第一个参数传递给 print
。