2012-12-29 13 views
11

RStudio, R Markdown, Latex 및 Pandoc을 사용하여 데이터를 정리하고, 변수를 구성하고, 분석을 실행하고, 결과를보고합니다. 나는 재현 가능한 연구의 개념에 익숙하지 않지만 나는 매료되었다. 많은 의미가 있습니다.재현 가능한 연구를위한 자동화 된 텍스트

동적 테이블 및 숫자는 아무런 문제가되지 않습니다. 그러나 동적 인 텍스트는 나를 혼란스럽게합니다. 인라인 코드를 삽입하여 모든 통계의 95 %가 거짓이라고 말할 수는 있지만 재현 가능한 방식으로 내 언어를 어떻게 변경할 수 있는지 잘 모르겠습니다.

예를 들어 개체 x = 0.66이 있고 "3 명 중 2 명이 치아를 사용합니다"라고 쓰고 싶습니다. 텍스트의 x, 0.66의 현재 값과 "2 중에서 3"을 볼 수는 있지만 재현 할 수는 없습니다. 새로운 데이터를 얻고 분석을 다시 시작하면 x는 0.52가됩니다. 내 텍스트가 오래된 것입니다. 물론 치과 의사의 52 %가 Crest를 선호한다고 역동적으로보고 할 수 있지만 모든 것이 백분율로보고되면 보고서가 오래되지 않습니다.

제 생각에는 글을 바꿀 때 텍스트에서 호출 할 수있는 함수를 만들 수 있습니다.

ifelse(x < 0.09,"fewer than 1 out of 10", 
ifelse(x >= 0.09) & x < 0.11,"roughly 1 out of 10", 
ifelse(x >= 0.11 & x < 0.15,"slightly more than 1 out of 10", 
ifelse(x >= 0.15 & x < 0.19,"nearly 2 out of 5", 
ifelse(x >= 0.19 & x < 0.21,"roughly 2 out of 5", 
... 
ifelse(x >= 0.95 & x < 0.99,"nearly all", 
ifelse(x >= 0.99,"all","fubar"))...) 
나는 또한 십분의 일, 5 분의 2에 대한 비슷한 할 것이라고 일부 기능을 만들 수

, 하나를 다른 문이 텍스트를 생성하는 경우 예를 들어, "out.of"기능에 일할 수있는 세 번째 ...

다른 사람들이 이미이 문제에 착수 한 것으로 확신합니다. 어떤 단서? 아이디어?

+0

이것은 정말로 흥미로운 질문이지만, 나는 당신의 한계가 가독성을 위해 무엇인지에 정말로 달려 있다고 생각합니다. 예를 들어 "20 개 중 1 개"또는 "25 개 중 1 개"가 유효한 옵션이라고 생각하십니까? 좀 더 일반적인 휴식 시간 (예 : "2 out of 5")에 대해 설정하려는 임계 값은 무엇입니까? 일단 이것이 정리되면,'cut()'을 시도하고'ifelse()'대신에 라벨을 지정하는 것이 좋습니다. 나는 패키지 중 어떤 것이 당신을 위해 그렇게 할 것이라고 생각하지 않지만, 그들이 당신을 거기에있게하는데 도움을 줄 것입니다! – A5C1D2H2I1M1N2O1R2T1

+0

퍼센테이지를 표현할 때는 "out of 10"이 내가 가고 싶은 가장 낮은 점수라고 생각합니다. 나는 올해 (제로의 기준선에서) 1 톤의 R을 배웠지 만, cut()은 그렇지 않다. 그것을 들여다 볼 것입니다. 감사. –

+0

그러면 "out of"카테고리가 가장 유용하다는 것을 알아 내야 할 것입니다. "{9, 8, 7, 6} 중"과 같은 카테고리는 정신적으로 숫자를 백분율로 변환하려고 시도하는 독자에게 과세하기 때문에 사용자에게 친숙하지 않을 수도 있습니다. 행운을 빕니다! – A5C1D2H2I1M1N2O1R2T1

답변

7

FRACTION 패키지가 있으며 "out of"로 교체하면 작동 할 수 있습니다. 그러나 소수의 번호를 사용하여 출력이 이상하다 : @Dieter Menne에 의해

library(FRACTION) 
fra(0.66,j=2) 
# [1] "33/50" 
fra(0.66,j=1) 
#"7/1e+08" 

편집 :이 잊지 아래 @ 벤 Bolker를 참조하십시오.

+5

당신은'MASS :: fractions' : fractions (0.66, cycles = 3)'(그리고 MASS는 이미 권장 됨) –

+0

Krr로 이것을 해결할 수있을 것입니다. 어디서 찾을 수 있는지 기억하지 못합니다. –

+0

위대한, @BenBolker –