首页 > 解决方案 > R轮添加额外零的问题

问题描述

我正在制作 29 个闪亮的应用程序,它们都非常相似,但具有来自不同州的数据。我已经成功地复制和粘贴了代码,只是更改了数据。我正在显示无家可归者和寄宿学生的结果,我想将百分比四舍五入到最接近的十分之一。我遇到了一个问题,R 在某些百分比的末尾添加了一个额外的 0,但仅适用于无家可归的群体,并且只有少数几个变量。它不会每次都发生,即使在它发生的少数变量中(如果重要的话,它们的格式都相同),每个应用程序中的变量并不总是相同的。我不知道这是 R 问题还是闪亮问题,有时它们会在 R 中正确显示,并且在我运行应用程序之前不会弄乱,但有时无论运行应用程序都会发生这种情况。这是某种错误吗?有什么解决方法吗?到目前为止,我发现的最佳解决方案就是手动输入这些标签,但这有点痛苦。这是我用来四舍五入的代码。

CAWtabkypct$Homeless <- percent(round(CAWtabkypct$Homeless, 3)) 
CAWtabkypct$Housed <- percent(round(CAWtabkypct$Housed, 3))

这是我得到的输出,以及图表在应用程序中的样子。

输出

我什至不知道如何开始分享一个可重现的例子,所以如果有人知道发生了什么或者我可以提供更多信息,请告诉我。

编辑:这是一个非常小的可重现示例:

CAWtabkyhml <- c(0.3756009, 0.2974416, 0.3269574)
CAWtabkyhsd <- c(0.1410886, 0.2504221, 0.6084893)

CAWtabkypcthml <- percent(round(CAWtabkyhml, 3))
CAWtabkypcthsd <- percent(round(CAWtabkyhsd, 3))

标签: rshinyrounding

解决方案


percent()函数自己进行舍入。您应该只使用该功能而不是打扰round()

CAWtabkypcthml <- scales::percent(CAWtabkyhml, accuracy=.1)
CAWtabkypcthsd <- scales::percent(CAWtabkyhsd, accuracy=.1)
CAWtabkypcthml
# [1] "37.6%" "29.7%" "32.7%"
CAWtabkypcthsd
# [1] "14.1%" "25.0%" "60.8%"

推荐阅读