在 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