2013-04-10 68 views
1

我是R編程的初學者。我編寫了一個基本的R腳本,允許用戶選擇一個帶有2列(X和Y)的.csv文件,將它們繪製在圖上以顯示線性迴歸並打印出XY關係的相關rsquared值。從R GUI創建.csv的線性迴歸圖

有人可以解釋添加此代碼到gWidgets的基礎知識,所以我可以有一個兩個按鈕的圖形用戶界面? - button1將是一個file.choose()來選擇.csv文件(我在其他地方看過這段代碼),button2將運行線性迴歸並輸出到顯示窗口。

我已經通過了所有的gWidgets教程和代碼片段,但它仍然不清楚如何執行一個簡單的功能,因爲我已經描述過了。我想我認爲可以將我現有的R代碼剪切並粘貼到一個gWidgets按鈕中,但我現在認爲情況並非如此。

任何幫助將不勝感激。
親切的問候

#CALCULATES LINEAR REGRESSION SCATTER PLOT FOR TWO COLUMNS - X and Y 
# ALSO PRINTS r2 VALUE ON PLOT 

#READ IN THE .CSV FILE - FILE SHOULD CONTAIN TWO COLUMNS WITH NO HEADER - X and Y 
#CREATE DATAFRAME 
test1 <- read.csv("C:/Data/test.csv", header=FALSE) 

#ASSIGN THE DATA IN EACH COLUMN TO A VARIABLE NAME 
X1 <- test1$V1 
Y1 <- test1$V2 

#PLOT DATA WITH APPROPRIATE LABELS 
plot(X1, Y1, xlab="X", ylab="Y") 

#CALCULATE THE BEST FIT LINE AND PRINT R2 VALUE ON PLOT 
abline(fit <- lm(X1 ~ Y1, data=test1), col='red') 
legend("topright", bty="n", legend=paste("r2 is", format(summary(fit)$adj.r.squared, digits=4))) 

回答

1

我猜你正在尋找的東西一樣簡單:

library(gWidgets) 
options(guiToolkit="tcltk") ## or RGtk2 ... 

w <- gwindow("Your GUI", visible=FALSE) 
g <- ggroup(cont=w, horizontal=FALSE) 

upload <- gfilebrowse("Select a csv file", cont=g) 
btn <- gbutton("Do it", cont=g) 
enabled(btn) <- FALSE 

filename <- NULL 
do_it <- function(...) { 
    message("Read csv file in filename") 
    message("make graphic") 
    message("make summary") 
} 

addHandlerChanged(upload, handler=function(h, ...) { 
    val <- svalue(upload) 
    if(!is.na(val)) { 
    filename <<- val 
    enabled(btn) <- TRUE 
    } 
}) 
addHandlerChanged(btn, handler=do_it) 

visible(w) <- TRUE 
+1

您好,感謝您對於這一點,它是人誰是開始了一個非常有用的結構。我仍然不明白的是,如何將繪製在函數中的消息替換爲繪製XY數據的請求。乾杯 – user2224979 2013-04-11 11:38:06