R轮添加额外零的问题

R轮添加额外零的问题,r,shiny,rounding,R,Shiny,Rounding,我正在制作29款闪亮的应用程序,它们都非常相似,但拥有来自不同州的数据。我已经成功地复制和粘贴了代码,只是更改了数据。我正在展示无家可归和寄宿学生的结果,我想将百分比四舍五入到最接近的十分之一。我遇到了一个问题,R在某些百分比的末尾加上了一个额外的0,但只适用于无家可归的人群,并且只有一些变量。它并不是每次都会发生,甚至在它使用的几个变量中(如果重要的话,它们的格式都是相同的),在每个应用程序中也不总是相同的。我不知道这是一个R问题还是一个闪亮的问题,有时它们在R中正确显示,在我运行应用程序之前

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

CAWtabkypct$Homeless <- percent(round(CAWtabkypct$Homeless, 3)) 
CAWtabkypct$Housed <- percent(round(CAWtabkypct$Housed, 3))
CAWtabkypct$house函数本身进行舍入。您应该只使用该功能,而不必麻烦使用
round()


CAWtabkypcthml如果您包含一个简单的示例输入,可以用来测试和验证可能的解决方案,那么帮助您就更容易了。我不能用所提供的信息来重复这个问题。“额外的零”可能有各种原因,几乎所有这些原因都与R在控制台上表示事物的方式有关。一些控件包括
选项(c(“数字”、“scipen”)
(我鼓励您阅读
?选项
,了解它们的功能)。然而,通常修复涉及告诉R你想要什么,因为这只是猜测;为此,我建议使用
sprintf
format
。这有点难。。一个可再现的示例是提供数据帧CAWtabkypct?百分比函数是什么?我显然想得太多了,因为我不希望有这么小的东西来重现这个问题,但它确实重现了(至少在我这方面),所以我用一个可重现的例子编辑了这篇文章。这似乎很有效,谢谢你的建议!我昨晚在家里实际上无法重现这个错误,所以我不确定是否有可能重现这个例子,但你(或任何人)知道为什么会发生这种情况吗?现在这个解决方案可行了,这真的无关紧要,只是看起来太随机了。这真的与计算机将浮点数存储为二进制表示形式,而不是我们习惯于看到的十进制表示形式有关。数字不会记录它们的小数位数。因此,舍入变得棘手,舍入一个舍入值可能并不总是产生相同的结果。
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))
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%"