Проблема с R раунд добавлением дополнительных нулей - PullRequest
0 голосов
/ 24 октября 2019

Я нахожусь в процессе создания 29 блестящих приложений, которые очень похожи, но имеют данные из разных состояний. Я успешно копирую и вставляю код и просто меняю данные. Я показываю результаты бездомных и обучающихся студентов и хочу округлить проценты до ближайшей десятой. У меня проблема, когда R добавляет 0 к концу некоторых процентов, но только для бездомной группы и только с определенной горсткой переменных. Это происходит не каждый раз, и даже среди немногих переменных, с которыми это происходит (все они отформатированы одинаково, если это имеет значение), они не всегда одинаковы в каждом приложении. Я не могу понять, является ли это проблемой R или просто проблемой, иногда они правильно отображаются в R и не запутываются, пока я не запускаю приложение, но иногда это происходит независимо от запуска приложения. Это какая-то ошибка? Есть ли обходной путь? Лучшее решение, которое я нашел до сих пор, - это просто ввести эти метки вручную, но это своего рода боль. Это код, который я использую для округления.

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

Это вывод, который я получаю, и как выглядят графики в приложении.

вывод graphs

Я бы даже не знал, как начать делиться воспроизводимым примером, поэтому, пожалуйста, дайте мне знать, если кто-нибудь знает, что происходит, или есть какая-то дополнительная информация, которую я могу предоставить.

РЕДАКТИРОВАТЬ: вот очень минимальный воспроизводимый пример:

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))

1 Ответ

1 голос
/ 25 октября 2019

Функция 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%"
...