首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >dplyr::group_by似乎在r中删除了pander选项。

dplyr::group_by似乎在r中删除了pander选项。
EN

Stack Overflow用户
提问于 2017-01-26 18:42:05
回答 1查看 182关注 0票数 1

我不确定这是一个bug还是我做错了什么,但是当我在把dplyr group_by命令输入pander之前,我似乎失去了它的dplyr group_by命令。我在Rstudio笔记本工作。例子如下:

加载库和设置选项:

代码语言:javascript
复制
library(pander)
panderOptions('round', 2)
panderOptions('keep.trailing.zeros', TRUE)
panderOptions('table.split.table', Inf)

library(tidyverse)

创建一些数据:

代码语言:javascript
复制
set.seed(10)
df <- data.frame(x = rnorm(10), y = rnorm(10), class = c("a", "b"))

print(df)

 x   y   class
0.01874617  1.10177950  a       
-0.18425254 0.75578151  b       
-1.37133055 -0.23823356 a       
-0.59916772 0.98744470  b       
0.29454513  0.74139013  a       
0.38979430  0.08934727  b       
-1.20807618 -0.95494386 a       
-0.36367602 -0.19515038 b       
-1.62667268 0.92552126  a       
-0.25647839 0.48297852  b

在没有任何group_by()操作的情况下操作df并使用pander:

代码语言:javascript
复制
# make a table and output data
df_nogroup <- df %>%
mutate(xy = x * y) %>%
summarise(mean = mean(xy, na.rm = TRUE),
        sd = sd(xy, na.rm = TRUE),
        se = sd(xy, na.rm = TRUE)/sqrt(n()),
        CI95_upr = mean + (qnorm(0.975) * se),
        CI95_lwr = mean - (qnorm(0.975) * se),
        n = n())

pander(df_nogroup, "No grouping step. Round working")

------------------------------------------
mean   sd   se   CI95_upr   CI95_lwr   n 
------ ---- ---- ---------- ---------- ---
-0.05  0.68 0.21    0.37      -0.47    10 
------------------------------------------

Table: No grouping step. Round working

现在使用group_by():

代码语言:javascript
复制
df_group <- df %>%
mutate(xy = x * y) %>%
group_by(class) %>%
summarise(mean = mean(xy, na.rm = TRUE),
        sd = sd(xy, na.rm = TRUE),
        se = sd(xy, na.rm = TRUE)/sqrt(n()),
        CI95_upr = mean + (qnorm(0.975) * se), 
        CI95_lwr = mean - (qnorm(0.975) * se),
        n = n()) 

pander(df_group, "Grouping appears to be the culprit")


 --------------------------------------------------------
 class    mean     sd     se    CI95_upr   CI95_lwr   n 
 ------- -------- ------ ------ ---------- ---------- ---
   a    0.04277  0.9674 0.4326  0.89069    -0.8051    5 

   b    -0.14979 0.2640 0.1181  0.08163    -0.3812    5 
 --------------------------------------------------------

 Table: Grouping appears to be the culprit

我的sessionInfo():

代码语言:javascript
复制
R version 3.3.2 (2016-10-31)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1

locale:
[1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United  States.1252    LC_MONETARY=English_United States.1252 [4] LC_NUMERIC=C LC_TIME=English_United  States.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] pander_0.6.0     lsmeans_2.25     estimability_1.2 lme4_1.1-12        Matrix_1.2-7.1 lubridate_1.6.0 [7] dplyr_0.5.0 purrr_0.2.2      readr_1.0.0      tidyr_0.6.1      tibble_1.2 ggplot2_2.2.1 [13] tidyverse_1.1.0  knitr_1.15.1 

解决后,升级到Devpander0.6.0,问题就解决了.

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-26 19:18:56

我经常遇到这种情况,您必须内联地设置选项,而不是使用panderOptions()

代码语言:javascript
复制
library(dplyr)
library(pander)

set.seed(10)
df <- data.frame(x = rnorm(10), y = rnorm(10), class = c("a", "b"))


df_group <- df %>%
  mutate(xy = x * y) %>%
  group_by(class) %>%
  summarise(mean = mean(xy, na.rm = TRUE),
            sd = sd(xy, na.rm = TRUE),
            se = sd(xy, na.rm = TRUE)/sqrt(n()),
            CI95_upr = mean + (qnorm(0.975) * se), 
            CI95_lwr = mean - (qnorm(0.975) * se),
            n = n()) 


pander(df_group, "Setting inline options fixes this", round = 2)

-------------------------------------------------------
 class   mean     sd     se    CI95_upr   CI95_lwr   n 
------- ------- ------ ------ ---------- ---------- ---
   a     0.04    0.97   0.43     0.89      -0.81     5 

   b     -0.15   0.26   0.12     0.08      -0.38     5 
-------------------------------------------------------

Table: Setting inline options fixes this

会话信息,以供比较。我正在使用dplyr的开发版本。

代码语言:javascript
复制
> sessionInfo()
R version 3.3.2 (2016-10-31)
Platform: x86_64-apple-darwin13.4.0 (64-bit)
Running under: OS X El Capitan 10.11.6

locale:
[1] en_CA.UTF-8/en_CA.UTF-8/en_CA.UTF-8/C/en_CA.UTF-8/en_CA.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] bindrcpp_0.1     pander_0.6.0     dplyr_0.5.0.9000

loaded via a namespace (and not attached):
 [1] lazyeval_0.2.0 magrittr_1.5   R6_2.2.0       assertthat_0.1 DBI_0.5-1      tools_3.3.2    tibble_1.2     Rcpp_0.12.9    digest_0.6.11  bindr_0.1  
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41880651

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档