从R GUI创建.csv的线性回归图

时间:2013-04-10 18:16:17

标签: r gwidgets

我是R编程的初学者。我编写了一个基本的R脚本,允许用户选择带有2列(X和Y)的.csv文件,在图表上绘制这些文件以显示线性回归并打印XY关系的相关rsquared值。

有人可以解释将此代码添加到gWidgets的基础知识,这样我就可以拥有一个带有两个按钮的GUI吗? - 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 个答案:

答案 0 :(得分: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