我使用RStudio,R Markdown,Latex和Pandoc来清理数据,构造变量,运行我的分析并报告结果。我对可重复研究的概念不熟悉,但我很迷恋。很有道理。
动态表和数字没问题。然而,动态文本让我很难过。我可以插入内联代码来说95%的统计数据都是错误的,但我不确定如何以可重现的方式改变我的语言。
例如,如果我有一个对象x = 0.66并且我想写“3个牙医中的2个使用Crest”怎么办?我可以查看x,0.66的当前值,并在文本中键入“2 out of 3”,但这是不可重现的。假设我得到新数据并重新运行我的分析,x变为0.52。我的文字已经过时了。当然,我可以动态地报告52%的牙医更喜欢Crest,但是当一切报告为百分比时,报告会变得陈旧。
我的想法是,当我想要改变写作时,我可以创建我可以在文本中调用的函数。例如,“out.of”函数可以用于if else语句来生成文本:
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"))...)
我还可以创建一个分数函数,它可以做十分之一,五分之二,三分之一......
我确信其他人已经解决了这个问题。任何线索?想法?
答案 0 :(得分:7)
有一个包FRACTION,当您替换/“out of”时,它可以工作。但是,使用小数位数时的输出很奇怪:
library(FRACTION)
fra(0.66,j=2)
# [1] "33 / 50"
fra(0.66,j=1)
#"7 / 1e+08"
@Dieter Menne编辑:忘记这一点,请参阅下面的@Ben Bolker。