我正在使用下面的代码来开发我一直在开发的股票价格应用程序(在这里有很多人的帮助,非常感谢!)。的事情之一,它应该做的是让用户选择一个公司从存储的XML文件来分析,我一直在使用下面的代码来做到这一点:在R中的下拉列表实现
df <- xmlToDataFrame(file.choose())
而不是使用file.choose(){为显然这个对话框揭示了很多系统结构},有人建议使用一个下拉菜单,列出公司和文件的链接。
在R中是否可能存在这样的事情,并且有没有实现它的简单方法?
我正在使用下面的代码来开发我一直在开发的股票价格应用程序(在这里有很多人的帮助,非常感谢!)。的事情之一,它应该做的是让用户选择一个公司从存储的XML文件来分析,我一直在使用下面的代码来做到这一点:在R中的下拉列表实现
df <- xmlToDataFrame(file.choose())
而不是使用file.choose(){为显然这个对话框揭示了很多系统结构},有人建议使用一个下拉菜单,列出公司和文件的链接。
在R中是否可能存在这样的事情,并且有没有实现它的简单方法?
select.list
允许您从列表中进行选择。也请检查menu
。
例子:
使用menu
companies <- c("AAA","BBB","CCC")
links <- c("c:/file1","c:/secret/file3","c:/file3")
i <- menu(companies, graphics=TRUE, title="Choose company")
df <- xmlToDataFrame(links[i])
使用select.list
companies <- c("AAA","BBB","CCC")
links <- c("c:/file1","c:/secret/file3","c:/file3")
i <- select.list(companies, title="Choose company")
df <- xmlToDataFrame(links[companies==i])
如果你想显示的名称和列表链接,然后使用
menu_items <- paste(companies, " (", links, ")", sep="")
i <- select.list(menu_items, title="Choose company")
df <- xmlToDataFrame(links[menu_items==i])
好吧,从R内工作。但是,当我从批处理文件使用Rscript运行它不起作用。是否有额外的软件包/我应该使用的代码? – 2010-08-26 11:17:34
'xmlToDataFrame'位于'RSXML'包中。你是否已经为在批处理模式下调用的R版本安装了? – 2010-08-26 11:59:19
@Anthony号是预期的行为。从'?menu':“在非交互式会话中使用'menu'是错误的。”你可以尝试tcltk包中的'tk_select.list'。 – Marek 2010-08-26 12:40:45
如果您不想进入tcltk
编程,请尝试使用gWidgets
软件包。
library(gWidgetstcltk) # or library(gWidgetsRGtk2), etc.
drp <- gdroplist(c("AAA", "BBB", "CCC"), container = gwindow())
有list.files()列出目录的所有文件,例如:list.files(getwd())会将其限制到您的工作目录。我知道,它不是互动的,但也许你会做一些事情。也许在建立在http helpserver的帮助下。 – 2010-08-26 10:30:56
查看[this](http://bioinf.wehi.edu.au/~wettenhall/RTclTkExamples/DropDown.html)。还有这[相关的问题](http://stackoverflow.com/questions/2540232/how-to-allow-multiple-inputs-from-user-using-r)。 – 2010-08-26 10:50:44