için 000 en ayırmak, ancak değil gibi formatlar, yıllar gibi. Aşağıdaki örnekte \Sexpr{nocomma}
'u yazdırdığımda kancayı yazmanın daha iyi bir yolu veya kancayı geçersiz kılacak bir yol var mı?knitr kanca Ben virgül ile '000s ayırmak için benim <code>rnw</code> üst kısmında bir kanca tanımlamak yıl
\documentclass{article}
\begin{document}
<<setup>>=
library(knitr)
options(scipen=999) # turn off scientific notation for numbers
opts_chunk$set(echo=FALSE, warning=FALSE, message=FALSE)
knit_hooks$set(inline = function(x) {
prettyNum(x, big.mark=",")
})
wantcomma <- 1234*5
nocomma <- "September 1, 2014"
@
The hook will separate \Sexpr{wantcomma} and \Sexpr{nocomma}, but I don't want to separate years.
\end{document}
Çıktı:
kanca 6,170 ayırmak ve 1 Eylül 2014, ama yıllar ayırmak istemiyorum olacaktır. Takvim dize için çalışır
knit_hooks$set(inline = function(x) { if(is.numeric(x)){ return(prettyNum(x, big.mark=",")) }else{ return(x) } })
:
Teşekkürler, @Spacedman. Bu, gönderdiğim soruyu yanıtlıyor ve yanıtlıyor, ben de kabul ediyorum. Gerçek kullanım durumumda, tarihlerimde olduğu gibi dizeler olarak saklanan bazı sayılarım var, ancak virgülle ayrılmış olmalarını istiyorum. Bu yüzden benim için 'is.numeric()' beni daha da yakınlaştırıyor, ama tam olarak değil. Kancayı çevrim içi olarak veya yığınla seçici olarak kapatmanın bir yolunu bulamadım. Siz ya da başkalarının bunu yapmanın bir yolunu düşünürse merak ediyorum. Şimdilik, 'is.numeric()' i kullanacağım ve benim durumumla uyumlu hale getirmek için başka işler yapacağım. –
güzel ek. eğer (if (!, x, "nocomma")) iadesi için bir tane değiştirdiyse (prettyNum (x, big.mark = ",")) "sadece" nocomma() 'yi kullanmam gerekiyor Virgül varsayılanından sapmak istiyorum. –