本篇接着上篇介绍有关文件(夹)操作的函数。
弹出文件(夹)选择框
除了直接使用字符串来表示文件(夹)路径外,R的基础包base
还有两个函数在运行后会弹出选择框,让用户自己选择所需的文件(夹),然后输出所选择对象的路径。
本篇所使用的示例数据和上篇相同,在公众号后台发送「示例数据」可以获取。
单项选择
file.choose()
函数运行后,用户可以在弹出的对话框选择「一个」文件(夹)。
该函数不需要设置参数,打开的文件页面为当前工作路径。
setwd("123.示例文件夹")
path = file.choose()
path
head(read.csv(file = path))
## X mpg cyl disp hp drat wt qsec vs am gear carb
## 1 Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
## 2 Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
## 3 Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
## 4 Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
## 5 Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
## 6 Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1
上面代码在运行到第二行时会弹出如下图所示的对话框。用户在选中文件并点击右下角「打开」按钮后,程序会继续运行;如果点击「取消」键,程序会中断。
多项选择
choose.files()
函数允许用户可以一次选中多个文件(夹)。选择一个后,按电脑「Ctrl」键可继续选择。
choose.files(default = "", caption = "Select files",
multi = TRUE, filters = Filters,
index = nrow(Filters))
示例如下:
setwd("123.示例文件夹")
choose.files(default = "file2",
caption = "请选择文件夹")
选择文件夹后的界面如下图所示:
该函数的参数含义如下:
default:对话框刚打开时,「文件名」框内所显示的文件名,默认为无;
caption:对话框标题,在左上角显示;
multi:是否允许多选;默认为TRUE;
filters:文件筛选选项,即出现在对话框最下方「文件类型」框中的内容;可选项使用数组变量
Filters
储存;index:对话框刚打开时「文件类型」显示内容为语句
Filters[index,1]
的输出结果。
当indx = 1
时,
Filters[1,]
## [1] "R or S files (*.R,*.q,*.ssc,*.S)"
## [2] "*.R;*.q;*.ssc;*.S"
index
默认值为Filters
的行数,
nrow(Filters)
## [1] 12
Filters[nrow(Filters),]
## [1] "All files (*.*)"
## [2] "*.*"
增删复制文件(夹)
这类函数及其功能如下:
dir.create()
:在指定路径创建文件夹;file.copy()
:将一些文件复制到指定的文件夹内;file.rename()
:重命名文件夹;dir.exists()
:判断文件夹路径是否存在;输出结果为逻辑变量;unlink()
:删除指定文件夹。
示例如下(建议自行运行):
dir.create("新建文件夹")
files = list.files("123.示例文件夹", recursive = T,
full.names = T)
file.copy(files, "新建文件夹")
## [1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE FALSE TRUE
## [13] TRUE
file.rename("新建文件夹", "我的文件夹")
dir.exists("我的文件夹")
## [1] TRUE
unlink("我的文件夹", recursive = TRUE)
dir.exists("我的文件夹")
## [1] FALSE