summary.glm函数的MagrittR T形管。简单问题

summary.glm函数的MagrittR T形管。简单问题,r,glm,summary,magrittr,R,Glm,Summary,Magrittr,事实上,我发现T形管有问题。我试图在同一条链中做3件事: 适合我的GLM 将其保存在变量中 打印它的摘要 因此,我尝试以下语法: my_variable <- data %>% glm(Responce ~ Variables, family) %T>% summary my_变量% glm(响应变量,系列)%T>% 总结 它不能按预期工作。glm已安装,但摘要无法显示。所以我要把它分成两条链: my_variable <- data %>%

事实上,我发现T形管有问题。我试图在同一条链中做3件事:

  • 适合我的GLM
  • 将其保存在变量中
  • 打印它的摘要
  • 因此,我尝试以下语法:

    my_variable <- data %>%
        glm(Responce ~ Variables, family) %T>%
        summary
    
    my_变量%
    glm(响应变量,系列)%T>%
    总结
    
    它不能按预期工作。glm已安装,但摘要无法显示。所以我要把它分成两条链:

    my_variable <- data %>%
        glm(Responce ~ Variables, family)
    
    my_variable %>% summary
    
    my_变量%
    glm(响应变量,族)
    我的变量%>%摘要
    
    所以我在想:要么我没有得到T-pipe的功能,要么它没有正确编码,弄乱了summary函数

    因为如果我尝试:

    my_variable <- data %>%
        glm(Responce ~ Variables, family) %T>%
        plot
    
    my_变量%
    glm(响应变量,系列)%T>%
    情节
    
    它工作得很好


    一些想法?

    我不明白,为什么您需要
    %t>%
    在这里。如果要强制打印,只需使用常规管道并将
    print()
    添加到管道中即可。但是请记住,使用这种方法,您可以将摘要存储在
    my_变量
    中,而不是存储在模型本身中

    库(magrittr)
    my_变量%
    glm(计数~结果+治疗,家庭=泊松(),数据=)%>%
    摘要()%>%
    打印()
    #> 
    #>电话:
    #>glm(公式=计数~结果+治疗,家庭=泊松(),
    #>数据=)
    #> 
    #>偏差残差:
    #>        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  
    #> 
    #>系数:
    #>估计标准误差z值Pr(>z)
    #>(截距)3.045e+00 1.709e-01 17.815结果2-4.543e-01 2.022e-01-2.247 0.0246*
    #>结果3-2.930e-01 1.927e-01-1.520 0.1285
    #>治疗2 1.338e-15 2.000e-01 0.000 1.0000
    #>处理3 1.421e-15 2.000e-01 0.000 1.0000
    #> ---
    #>签名。代码:0'***'0.001'***'0.01'*'0.05'.'0.1''1
    #> 
    #>(泊松族的色散参数取1)
    #> 
    #>零偏差:8个自由度上的10.5814
    #>剩余偏差:4个自由度上的5.1291
    #>AIC:56.761
    #> 
    #>Fisher评分迭代次数:4
    
    资料
    计数当您在控制台中键入
    摘要(某物)
    时,
    print
    被隐式调用。管道调用中不是这种情况,因此需要显式调用
    print

    由于
    %T>%
    的非分支仅适用于一次操作,因此您必须撰写
    打印
    摘要

    my_variable <- data %>%
        glm(Responce ~ Variables, family) %T>%
        {print(summary(.)}
    
    my_变量%
    glm(响应变量,系列)%T>%
    {打印(摘要(.)}
    

    您需要大括号和圆点,否则,
    glm
    输出将作为第一个参数传递给
    print

    ,非常感谢,完美的答案。您有关于这类事情的更多参考资料吗?FM没有太多关于%T>%的内容。手册上说
    tee操作符的工作方式类似%>%,除了返回值e是lhs本身,而不是rhs函数/表达式的结果。
    ,我认为这几乎就是关于它的所有知识。您可以打印、打印或保存(或任何副作用),但它不会返回任何内容,因此,如果将其导入另一个表达式,无论是使用
    %%>%%
    还是
    %t>%%
    ,它都会像第一个
    %t>%%
    不存在一样,除了副作用。搜索[magrittr]在上面的搜索框中,您会发现许多关于这些运算符的很酷的问题/答案。另请参见以下答案:。您可以使用函数
    pprint
    ,只需将管道结尾为
    %%pprint(summary)
    %T>%%
    管道不需要(尽管您也可以使用它),因此无需附加
    magrittr