R语言的文件和文件夹操作功能(2)

本篇接着上篇介绍有关文件(夹)操作的函数。

弹出文件(夹)选择框

除了直接使用字符串来表示文件(夹)路径外,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

上面代码在运行到第二行时会弹出如下图所示的对话框。用户在选中文件并点击右下角「打开」按钮后,程序会继续运行;如果点击「取消」键,程序会中断。

6325e78a496221cfccb644f121a9eae4.png

多项选择

choose.files()函数允许用户可以一次选中多个文件(夹)。选择一个后,按电脑「Ctrl」键可继续选择。

choose.files(default = "", caption = "Select files",
             multi = TRUE, filters = Filters,
             index = nrow(Filters))

示例如下:

setwd("123.示例文件夹")
choose.files(default = "file2", 
             caption = "请选择文件夹")

选择文件夹后的界面如下图所示:

25196f42e713dd70f86b18a64e31b15c.png

该函数的参数含义如下:

  • 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
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值