2017-04-07 1 views
0

Je suis nouveau à R. Je veux ajouter à la fois des statistiques descriptives et un histogramme à un pdf.R: Sortie du texte et des graphiques en pdf

Le code suivant génère avec succès deux histogrammes à l'aide de ggplot2. Mais les fonctions décrites (du paquet psych) n'apparaissent pas dans le pdf. Comment inclure les deux?

library(psych) 
library(foreign) 
library(nnet) 
library(ggplot2) 
library(reshape2) 

# direct output to a file 
sink("C:\\Users\\jake\\Dropbox\\__iKoda\\datafiles\\OutputR.txt", append=FALSE, split=TRUE) 
gc() 
memory.limit() 


options(max.print=1000000) 

results <- read.csv("C:\\Users\\jake\\Dropbox\\__iKoda\\datafiles\\results.csv") 



pdf(file="C:\\Users\\jake\\Dropbox\\__iKoda\\datafiles\\plots.pdf") 

timesTrimmedComplete=processITStimes(results,"TSICompleted") 

print(describe(timesTrimmedComplete$totaltimemins)) 

freq=generateQplot(timesTrimmedComplete$totaltimemins,"histogram", 1) 
print(freq) 




timesTrimmedINComplete=processITStimes(results,"_TSIIncomplete") 

print(describe(timesTrimmedINComplete$totaltimemins)) 

freq1=generateQplot(timesTrimmedINComplete$totaltimemins,"histogram", 1) 
print(freq1) 

dev.off() 
######################################################################################## 

generateQplot<-function(dataVector, plotType, binWidthValue) 
{ 
    freq=qplot(dataVector,geom=plotType, binwidth=binWidthValue) 
    return(freq) 
} 


processITStimes<-function(resultsData, statusCode) 
{ 
    completeResults <- resultsData[grep(statusCode, resultsData$Final_Status), ] 
    times <- completeResults[, grep("*duration*", colnames(completeResults))] 
    times[is.na(times)] <- 0 

    times$totaltime <- rowSums(times[,2:ncol(times)]) 
    times$totaltimemins <-round(times$totaltime/60, digits=0) 
    times$rowId<-completeResults$RowId 
    print(statusCode); 
    print(describe(times$totaltimemins)) 


    timesTrimmed<-times[times$totaltimemins<60,] 

    return(timesTrimmed) 

} 



sink() 

Répondre

0

Si vous créez des ggplots, vous pouvez toujours utiliser ggsave(). Alors vous feriez

ggsave(plot = freq1, filename = "freq1.pdf", device = "pdf") 

Vous pouvez également spécifier la taille pour rendre la parcelle (hauteur/largeur/unités), etc.

+0

Merci, mais je suis à la recherche d'inclure deux ensembles de deux et Descriptive ensembles d'histogrammes en un pdf – Jake

+1

Oh je vois. Si vous essayez de créer un pdf avec plusieurs objets, le mieux est de créer un document de démarque et de le coller en pdf. De cette façon, vous pouvez avoir vos parcelles, et vous pouvez également imprimer à partir de la fonction de description. Désolé je ne suis pas plus d'aide. –

+0

C'est utile! – Jake