注:本文是作者寒假在家闲着没事写的,纯属娱乐,熟悉 R 的朋友自己查帮助就可以了。?select.list ?choose.files
等等。
R 语言中的简单人机交互与文件操作
中国人民大学统计学院 谢益辉
众所周知,R 语言在编写统计类程序上有着其它统计软件无法比拟的优势,而用 R 自行编写程序时,若加入
一些人机交互的操作界面,对于“枯燥乏味”的编程工作无疑会带来几分生动,同时也增加了用户使用程序的灵活
性。在此,本文简单介绍一下关于人机交互操作和文件操作的几个函数。
一、简单的人机交互对话框
R 的utils 包 2 中提供了一些我们常用的人机交互操作函数,例如信息框(Message Box )、选择列表、文本
框、打开文件/文件夹的对话框等等;下面依次给予说明:
1、信息框与文本框
winDialog(type = c("ok", "okcancel", "yesno", "yesnocancel"), message)
winDialogString(message, default)
前者是信息框,后者是文本框,这二者的作用分别是给用户相应的提示信息和让用户输入需要的信息;信息
框的 type 参数有四种选择,分别表示“确定”“确定、取消”“是、否”“是、否、取消”,message 参数是给用户的提
示信息;文本框的 message 参数意思同前,default 参数是默认的输入文本。
信息框的返回值为相应的字符如"YES"、"NO"等,文本框的返回值为输入的字符;编程人员可以根据用户的
不同输入来执行相应的程序。
例:
x = as.numeric(winDialogString(message = "911 - 711 = ?", default = "")) # 输入的为字符,需要转化为
数值
if (is.na(x) | x!= 200) {
winDialog(type = "ok", message = "I'm a little fool! -_-//")}
2、列表框
select.list(list, preselect = NULL, multiple = FALSE, title = NULL)
list 参数为字符型向量,preselect 为预先选中的项目,multiple 用来设置是否可多选,title 为对话框的标题;函
数返回值为选中的项目(构成的字符型向量)。
例:
> select.list(list = letters[1:5], preselect = "c", multiple = FALSE, title = "Select a letter")# 设置c 为预选
项;单选
[1] "c"
> select.list(list = LETTERS[1:5], preselect = NULL, multiple = TRUE, title = "Select a letter")# 可多选
[1] "B" "D" "E"
图 1:略(参见附件)
3、获得文件/文件夹的路径
choose.files(default = "", caption = "Select files", multi = TRUE, filters = Filters, index = nrow(Filters))
choose.dir(default = "", caption = "Select folder")
二者分别为选择文件和文件夹的对话框;default 参数设置默认的路径,caption 设置对话框标题,multi 设
置是否可多选,filters 设置选择的文件类型(扩展名)3,index 为将 filters 参数中第几种文件类型设置为默认类
型;
例:
> choose.files(caption = "Choose some files", multi = TRUE, filters = Filters, index = nrow(Filters))
[1] "E:\\R\\dialog.r" "E:\\R\\for.r" "E:\\R\\layout.r"
> fltr = matrix(c("Microsoft Office Document", "*.doc; *.xls; *.ppt"), nrow = 1)
> choose.files(caption = "Select files", mul