【问题标题】:Create Linear Regression Plot from .csv from R GUI从 R GUI 的 .csv 创建线性回归图
【发布时间】:2013-04-10 18:16:16
【问题描述】:

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

有人能解释一下将这段代码添加到 gWidgets 的基础知识吗?这样我就可以拥有一个带有两个按钮的 GUI 了吗? - button1 将是一个 file.choose() 来选择 .csv 文件(我在其他地方看到过此代码), button2 将运行线性回归并将绘图输出到显示窗口。

我已经阅读了所有 gWidgets 教程和代码 sn-ps,但我仍然不清楚如何执行上面描述的简单功能。我想我认为可以将现有的 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)))

【问题讨论】:

    标签: r gwidgets


    【解决方案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
    

    【讨论】:

    • 你好,谢谢你,这对于刚开始的人来说是一个非常有用的结构。我仍然不明白的是如何将您在函数中编写的消息替换为绘制 XY 数据的请求。干杯
    猜你喜欢
    • 1970-01-01
    • 2013-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-05
    • 2012-01-12
    • 1970-01-01
    • 2019-01-02
    相关资源
    最近更新 更多