R重命名数据集

时间:2013-12-09 19:09:17

标签: r user-interface tcl tk

我正在使用Tcltk软件包创建GUI,我想知道是否有办法重命名我导入的数据集。基本上,我希望用户为他导入的数据集选择一个名称,但下面的代码并没有给我这个。我尝试做的是与导入文件时RStudio相同的概念。 有人能指出我正确的方向吗?

提前谢谢!

require(tcltk)
tt <- tktoplevel()
tkwm.title(tt, "Read Text Data")
dsName <- tclVar("Dataset")
entry.Name <-tkentry(tt,width="20",textvariable=dsName)
entry.box <- tklabel(tt,text="Please enter dataset name:")
tkgrid(entry.box, entry.Name)
tkgrid(tklabel(tt,text=""))

onOk <- function() 
{
  myval <- tclvalue(tkgetOpenFile())
  myData <<- read.table(myval, header=TRUE, sep=",", dec = ".")
} 

OK.but <- tkbutton(tt,text="  Import  ",command=onOk)
Qt.but <- tkbutton(tt,text="  Cancel  ",command=function()tkdestroy(tt))
tkgrid(OK.but, Qt.but)
tkfocus(tt)

1 个答案:

答案 0 :(得分:2)

而不是这一行:

myData <<- read.table(myval, header=TRUE, sep=",", dec = ".")

尝试类似:

myData <- read.table(myval, header=TRUE, sep=",", dec = ".")
assign(tclvalue(dsName), myData, envir = .GlobalEnv)

虽然您可能想要envir = .GlobalEnv其他内容(如果您计划将其放在CRAN上,则无法以这种方式分配到全局环境,而是必须使用用户创建的环境)。

其他一些说明:

  1. 您可能希望在tkdestroy功能结束时拨打onOK
  2. 您可能需要添加一个逻辑来检查用户在按下确定时是否实际为数据集提供了名称。