r-summarise()中的舍入

时间:2018-06-28 06:04:04

标签: r dplyr

我想使用group_by()软件包中的summarise(){dplyr}在聚合输出中看到更多数字。我的代码如下:

library(dplyr)
# download 2 datasets
download.file('https://d396qusza40orc.cloudfront.net/getdata%2Fdata%2FGDP.csv','GDP.csv',mode = 'wb')
GDP<-read.csv('GDP.csv',skip=4,stringsAsFactors = F,na.strings = '')
GDP<-GDP%>%filter(!is.na(X),!is.na(X.1))%>%mutate(X.1=as.numeric(X.1))
download.file('https://d396qusza40orc.cloudfront.net/getdata%2Fdata%2FEDSTATS_Country.csv','EDSTATS.csv',mode = 'wb') 
edu<-read.csv('EDSTATS.csv',stringsAsFactors = F)

# join these two datasets
df<-inner_join(GDP,edu,by=c('X'='CountryCode'))%>%arrange(desc(X.1))

# aggregation
df%>%group_by(Income.Group)%>%summarise(avg_GDP=mean(X.1))

我从控制台获得的结果:

# A tibble: 5 x 2
  Income.Group         avg_GDP
  <chr>                  <dbl>
1 High income: nonOECD    91.9
2 High income: OECD       33.0
3 Low income             134. 
4 Lower middle income    108. 
5 Upper middle income     92.1

显然,这个数字没有完整显示。那么如何在avg_GDP中看到更多数字?
如果将结果分配给新的数据框并在RStudio中查看,我会看到更多数字,但仍然只有5位数字:

df2<-df%>%group_by(Income.Group)%>%summarise(avg_GDP=mean(X.1))
View(df2)

那么如何在控制台打印和数据框View()中看到更多的数字?
我尝试过:

df%>%group_by(Income.Group)%>%summarise(avg_GDP=mean(X.1,digits=10))

它不起作用。

我的问题与潜在的重复问题不同,我想要的是可以在%>%链中完成工作的代码。从他的帖子中,我喜欢以下答案:

# this is my favorite, because it fits well with my original code with %>%.
print.data.frame(my_tbl, digits = 3) 

options(digits = 3)
print.data.frame(my_tbl)

从我的帖子中,我喜欢options(pillar.sigfig = 10)

1 个答案:

答案 0 :(得分:1)

对于小工具包,您需要修改选项pillar.sigfig

  

pillar.sigfig:将要打印并突出显示的有效位数,默认值为3

library(tibble)
options(pillar.sigfig = 10)

set.seed(1)
tibble(a = rnorm(3), b = rexp(3))
# A tibble: 3 x 2
#              a            b
#          <dbl>        <dbl>
#1 -0.6264538107 0.4360686258
#2  0.1836433242 2.894968537 
#3 -0.8356286124 1.229562053