在 dplyr 中使用 group_by 时在 R 中格式化数字 [重复]

Posted

技术标签:

【中文标题】在 dplyr 中使用 group_by 时在 R 中格式化数字 [重复]【英文标题】:Formatting numbers in R when using group_by in dplyr [duplicate] 【发布时间】:2018-02-14 10:09:18 【问题描述】:

我目前有以下 R 代码,它根据 BLANLIMAMT 列中的值将数据分组为“带”。这完美无缺。

library(dplyr)


#Import the data
MyData <- read.csv("LibFile.csv", stringsAsFactors = FALSE)

#Profile the Data
bTable<- MyData %>% 
  group_by(gr=cut(BLANLIMAMT, breaks= seq(0, 50000000, by = 500000)) )%>% 
  summarise(n= n()) %>%
  arrange(as.numeric(gr))

我的问题是格式化输出。 gr 列(在 bTable 中)中的值当前看起来像 (0,5e+05)。我希望它们看起来像 0 到 500,000 等。这是表格的屏幕截图:

Here is a screenshot of the table

对我将如何实现这一目标有任何想法吗?

【问题讨论】:

【参考方案1】:

在剪辑中使用dig.lab=8。例如

bTable<- MyData %>% 
  group_by(gr=cut(BLANLIMAMT, breaks= seq(0, 50000000, by = 500000), dig.lab=8) )%>% 
  summarise(n= n()) %>%
  arrange(as.numeric(gr))

它给出了转换为科学记数法之前的位数。

【讨论】:

这太好了,谢谢。有没有办法添加“'”,所以 500000 变成 500,000? 呃,我想这是你必须通过覆盖关卡手动完成的事情......【参考方案2】:

使用options("scipen"=100, "digits"=4)

您可以根据自己的喜好使用确切的数字 :)。

‘scipen’:整数。决定以固定或指数表示法打印数值时要应用的惩罚。正值偏向固定,负值偏向科学记数法:固定记数法将是首选,除非它比“scipen”数字更宽。

来源:https://stat.ethz.ch/R-manual/R-devel/library/base/html/options.html

【讨论】:

以上是关于在 dplyr 中使用 group_by 时在 R 中格式化数字 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

R语言dplyr包使用dplyr函数使用group_by函数summarise函数和mutate函数计算分组占比实战

如何使用 R 和 dplyr 中连续的元素执行 group_by

R语言dplyr包使用group_by函数和summarise函数构建频率表实战

R使用dplyr group_by / sum for循环,作为连接列表输出

R语言dplyr包使用group_by函数arrange函数和filter函数获取每个分组的第一个第N个最后一个记录实战

R语言dplyr包获取dataframe分组聚合汇总统计值实战(group_by() and summarize() ):均值中位数分位数IQRMADcountunique