我想使用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)
。
答案 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