J'ai un peu de mal à programmer R pour Sweave, et le groupe twitter #rstats pointe souvent ici, alors j'ai pensé que je poserais cette question à la foule SO. Je suis un analyste, pas un programmeur, alors allez-y doucement sur mon premier post.Programmation R/Sweave pour une sortie Sexpr correcte
Voici le problème: Je rédige un rapport d'enquête dans Sweave avec R et j'aimerais signaler les retours marginaux en ligne en utilisant \Sexpr{}
. Par exemple, plutôt que de dire:
Seulement 14% des répondants ont répondu «X».
Je veux écrire le rapport comme celui-ci:
uniquement \ {SEXPR p.mean (variable)} $ \% $ des répondants ont dit 'X'.
Le problème est que Sweave convertit les résultats de l'expression dans \Sexpr{}
à une chaîne de caractères, ce qui signifie que la sortie de l'expression dans la R et la sortie qui apparaît dans mon document sont différents. Par exemple, au-dessus utiliser la fonction 'p.mean':
p.mean<- function (x) {options(digits=1) mmm<-weighted.mean(x, weight=weight, na.rm=T) print(100*mmm) }
En R, la sortie ressemble à ceci:
p.mean(variable) >14
mais quand j'utilise \Sexpr{p.mean(variable)}
, Je reçois une chaîne de caractères non ficelée (dans ce cas: 13.5857142857143) dans mon document. J'ai essayé de limiter la sortie de ma fonction à digits=1
dans l'environnement global, dans la fonction elle-même, et dans diverses commandes. Il semble seulement contenir ce que R imprime, pas la transformation de caractère qui est le résultat de l'expression et qui s'imprime finalement dans le fichier LaTeX.
as.character(p.mean(variable)) >[1] 14 >[1] "13.5857142857143"
Est-ce que quelqu'un sait ce que je peux faire pour limiter les chiffres imprimés dans le fichier LaTeX, que ce soit en reprogrammant la fonction R ou avec un paramètre dans Sweave ou \Sexpr{}
?
Merci, Aleksandar.Je réécris la fonction comme ceci: p.mean <- function (x) { \t mmm <-weighted.mean (x, = poids, na.rm = T) \t retour (rond (100 * mmm) \t} J'ai prespécifié la variable de poids parce que j'essaie de minimiser la programmation que je suis de type. Parce que tous les jeux de données avec lesquels je travaille ont leur variable de poids étiquetée «poids», cela rend mon écriture un peu plus efficace. – deoksu