2014-11-15 27 views
0

我正在使用以下R代碼生成數據幀屬性的直方圖。直方圖的標題是文件中df [[i]]的直方圖,而R Studio顯示正確的「x的直方圖」或「y的直方圖」。我究竟做錯了什麼?生成不等於R Studio輸出的圖像文件

df <- data.frame(x=runif(20), y=runif(20)) 
analyzedata <- function(df){ 
    for(i in names(df)){ 
    fit <- hist(df[[i]],main=paste("Histogram of" , i)) 
    png(filename=paste("/home/jabro/histogram_",i,".png")) 
    plot(fit) 
    dev.off() 
    } 
} 

Wrong Title

回答

1

這HIST功能做了兩兩件事。它計算直方圖數據並繪製數據。當您分配返回值時,即fit<-hist(),您僅捕獲直方圖數據而不捕捉繪圖設置。您傳遞給繪圖的任何自定義屬性都不會保留在該對象中。

如果你只是想設置的變量名,你可以做

analyzedata <- function(df){ 
    for(i in names(df)){ 
    fit <- hist(df[[i]],main=paste("Histogram of" , i)) 
    fit$xname < - i 
    png(filename=paste("/home/jabro/histogram_",i,".png")) 
    plot(fit) 
    dev.off() 
    } 
} 

,或者如果您在標題希望完全控制,可以重複main=中的情節。

analyzedata <- function(df){ 
    for(i in names(df)){ 
    fit <- hist(df[[i]],main=paste("Histogram of" , i)) 
    png(filename=paste("/home/jabro/histogram_",i,".png")) 
    plot(fit,main=paste("Histogram of" , i)) 
    dev.off() 
    } 
}