概述
这个小插曲展示了如何为自定义格式装饰列。我们使用可格式化的包进行演示,因为它已经包含应用自定义格式的有用向量类数字。
图书馆(可格式化)
tbl(待定)<- 易怒的(x个= 数字(9:11,三))
tbl(待定)
#>#A台:3×1
#>x个
#><表格ttbl>
#> 1 9.000
#> 2 10.000
#> 3 11.000
这个x个
上面tibble中的列是一个正则数字使用格式化方法。它总是用三位数字显示小数点后。这也适用于从x个
.
图书馆(dplyr)
tbl2(待定)<-
tbl(待定)%>%
突变(
年=x个+ 1,
z(z)=x个*x、,
v(v)=年+z、,
滞后,滞后= 滞后(x,默认=x个[[1]]),
罪= 罪(x) ,
平均值= 意思是(v) ,
无功功率,无功功率= 无功功率,无功功率(x)
)
tbl2(待定)
#>#A台:3×8
#>x y z v滞后sin均值var
#><dbl:fmt>
#> 1 9.000 10.000 81.000 91.000 9.000 0.412 111.667 1
#> 2 10.000 11.000 100.000 111.000 9.000 -0.544 111.667 1
#> 3 11.000 12.000 121.000 133.000 10.000 -1.000 111.667 1
摘要还保留格式。
tbl2(待定)%>%
分组方式(_B)(滞后)%>%
总结(z(z)= 意思是(z) )%>%
取消分组()
#>#A台:2×2
#>滞后z
#><dbl:fmt>
#> 1 9.000 90.500
#> 2 10.000 121.000
枢轴操作也是如此。
图书馆(第三年)
股票<-
展开网格(_grid)(标识= 因素(1:4),年= 2018:2022)%>%
突变(股票= 货币(运行(20)* 10000))
股票%>%
枢轴(_wider)(标识_颜色=身份证件,名称来自=年,值_来自=库存)
#>#A台:4×6
#>id `2018 `2019`2020 `2021`2022`
#><fct><dbl:fmt>
#> 1 1 $807.50 $8,343.33 $6,007.61 $1,572.08 $73.99
#> 2 2 $4,663.93 $4,977.77 $2,897.67 $7,328.82 $7,725.22
#> 3 3 $8,746.01 $1,749.41 $342.41 $3,203.86 $4,023.28
#> 4 4 $1,956.70 $4,035.38 $636.61 $3,887.01 $9,755.48
对于ggplot2,我们需要这样做一些工作到show将格式应用于刻度。
图书馆(ggplot2)
#需求https://github.com/tidyverse/ggplot2/pull/4065或类似
股票%>%
ggplot图(原子发射光谱(x个=年,年=库存,颜色=id))+
地理线()
在流程的早期指定格式是值得的。这个下图显示了数据分析和从“R for data science”探索。
随后的图表添加了数据格式、通信选项和显式数据格式。突出显示原始r4ds转换以粗体显示。有两个主要选项可以应用格式结果:就在传达之前,或导入之后。
在流程的早期应用格式会带来以下额外好处在“整理”、“转换”和“可视化”阶段。为了使其有用,我们需要确保早期应用的格式选项:
- 为分析提供良好的用户体验
- 易于设置
- 在数据分析和探索过程中保持粘性
- 支持分析员就数据
- 一目了然地传达关键信息,并提供支持更详细更容易
- 看起来很适合交流
确保粘性是困难的,对于dbplyr来说是不够的工作流中的“整理”、“转换”甚至“可视化”部分阶段在数据库上运行。通常可以导出基于规则的格式化方法。
tbl3(待定)<-
易怒的(标识=信件[1:三],x个= 9:11)%>%
突变(
年=x个+ 1,
z(z)=x个*x、,
v(v)=年+z、,
滞后,滞后= 滞后(x,默认=x个[[1]]),
罪= 罪(x) ,
平均值= 意思是(v) ,
无功功率,无功功率= 无功功率,无功功率(x)
)
tbl3(待定)
#>#A台:3×9
#>id x y z v滞后sin均值var
#><chr><int><dbl><int><dbl><int><dbl>
#>1 a 9 10 81 91 9 0.4121185 111.6667 1
#>2 b 10 11 100 111 9-0.5440211 111.6667 1
#>3 c 11 12 121 133 10-0.9999902 111.6667 1
tbl3(待定)%>%
突变(
穿过(哪里(为数字),~ 数字(.x,三)),
穿过(哪里(~ 是数字的(.x)&& 意思是(.x)> 50),~ 数字(.x,1))
)
#>#A台:3×9
#>id x y z v滞后sin均值var
#><chr><dbl:fmt><dbl:fmt>
#>1 a 9.000 10.000 81.0 91.0 9.000 0.412 111.7 1.000
#>2 b 10.000 11.000 100.0 111.0 9.000-0.544 111.7 1.000
#>3 c 11.000 12.000 121.0 133.0 10.000-1.000 111.7 1.000
这些规则可以存储在quos()(数量)
:
规则<- 夸斯(
穿过(哪里(为数字),~ 数字(.x,三)),
穿过(哪里(~ 是数字的(.x)&& 意思是(.x)> 50),~ 数字(.x,1))
)
tbl3(待定)%>%
突变(!!!规则)
#>#A台:3×9
#>id x y z v滞后sin均值var
#><chr><dbl:fmt><dbl:fmt>
#>1 a 9.000 10.000 81.0 91.0 9.000 0.412 111.7 1.000
#>2 b 10.000 11.000 100.0 111.0 9.000-0.544 111.7 1.000
#>3 c 11.000 12.000 121.0 133.0 10.000-1.000 111.7 1.000
这带来了一些缺点:
- 语法重复且不太直观
- 与多列匹配的规则必须以相反的顺序给出在路上
变()
工作,并多次执行次
基于规则的格式的好API应该是什么样的?