R을 처음 접했을 때 나를 당황하게 한 것 중 하나는 인쇄를 위해 숫자를 백분율로 포맷하는 방법이었습니다.
예를 들어, 표시 0.12345
등 12.345%
. 나는 이것에 대한 많은 해결 방법이 있지만 이것들 중 어느 것도 "친숙한"것처럼 보이지 않습니다. 예를 들면 다음과 같습니다.
set.seed(1)
m <- runif(5)
paste(round(100*m, 2), "%", sep="")
[1] "26.55%" "37.21%" "57.29%" "90.82%" "20.17%"
sprintf("%1.2f%%", 100*m)
[1] "26.55%" "37.21%" "57.29%" "90.82%" "20.17%"
질문 : 이 작업을 수행하는 기본 R 함수가 있습니까? 또는 편리한 래퍼를 제공하는 널리 사용되는 패키지가 있습니까?
이처럼 무언가를 찾고에도 불구하고 ?format
, ?formatC
그리고 ?prettyNum
, 나는 R.베이스에 적절히 편리한 래퍼 찾을 아직 ??"percent"
아무것도 유용 양보하지 않았다입니다. library(sos); findFn("format percent")
1250 적중을 반환하므로 다시 유용하지 않습니다. ggplot2
기능이 percent
있지만 반올림 정확도를 제어 할 수 없습니다.
sprintf
에는 프로그래머이기도하다. 나는 COBOL (shudder)과 fortran (나이를 보여줌)을 포함하여 내 인생에서 많은 것을 코딩했습니다. 그러나 나는 sprintf
서식 규칙을 명백하게 고려하지 않습니다 (번역 : WTF?). 물론 전용 래퍼는 sprintf보다 호출하기가 더 쉽습니다.format_percent(x=0.12345, digits=2)
sprintf()
패키지에 포함되어 있는지 확인하는 것보다 사용 방법을 배우는 데 시간이 많이 걸리지 않습니다 . 사용자가 백분율로 포맷하지 않고 유사한 다른 것을 포맷하면 어떻게됩니까? 다른 래퍼를 찾아야합니다. 장기 학습에서는 기본 도구가 유용합니다. format_percent()
%
LaTeX의 주석 문자에는 R에 대한 "기본"보고 형식 인 약간의 문제점이 있습니다 . 따라서 그래프를 레이블링하는 데 유용 할 수 있지만 형식화 된 숫자를 스윕 할 때는주의를 기울여야합니다.
sprintf
메일 링리스트에서 가장 좋아하는 솔루션 인 것 같습니다. 더 나은 솔루션을 보지 못했습니다. 내장 함수가 호출하기가 훨씬 간단하지 않습니까?