目录
一、认识文件夹
1.1 getwd()函数
1.2 setwd()函数
1.3 file.path()函数
1.4 dir()函数
1.5 list.files()函数
1.6 file.exists()函数
1.7 file.rename()函数
1.8 file.create()函数
1.9 file.copy()函数
1.10 file.remove()函数
二、数据输出:cat()函数
三、读取数据:scan()函数
四、输出数据:write()函数
五、数据的输入
5.1 读取剪贴板数据
5.2 读取剪贴版数据:read.table()函数
5.3 读取Excel文件数据
六、数据的输出
6.1 writeClipboard()函数
6.2 write.table()函数
一、认识文件夹
在执行程序设计时,可能常需要将执行结果存储至某个文件夹,本节将介绍文件夹的相关知识。
1.1 getwd()函数
getwd()函数可以获得目前的工作目录。
1.2 setwd()函数
setwd()函数可以更改目前的工作目录。
1.3 file.path()函数
这个函数的主要功能类似于paste()函数,只不过这个函数是将片段数据路径组合起来。
1.4 dir()函数
dir()函数可列出某个工作目录下的所有文件名以及子目录名称。
使用dir()函数也可以省略“path=”。
1.5 list.files()函数
这个函数功能和dir()函数相同,可以列出某个工作目录下的所有文件名以及子目录名称。
1.6 file.exists()函数
file.exists()函数可检查指定的文件是否存在,如果存在则返回TRUE,如果不存在则返回FALSE。
1.7 file.rename()函数
file.rename()函数可以更改文件名。
1.8 file.create()函数
file.create()函数可以建立文件。
1.9 file.copy()函数
file.copy()函数可进行文件的复制,这个函数会将第1个参数的原目录文件复制到第2个参数的目的目录文件。如果想了解更多参数细节可以参考“help(file.copy)”。
1.10 file.remove()函数
file.remove()函数可删除指定的文件。
二、数据输出:cat()函数
cat()函数可以在屏幕或文件输出R语言计算结果或是一般输出数据,它的使用格式和各参数意义如下所示:
cat(系列变量或字符串,file=" ",sep=" ",append=FALSE)
- 系列变量或字符串:指一系列将要输出的变量或字符串。
- file:输出到外部文件时可在此输入目的文件路径和文件名,若省略则表示输出到屏幕。
- append:默认是FALSE,表示若想要输出到的目的文件已存在,将覆盖原文件。如果是TRUE,则将输出数据附加在文件末端。
上述的“\n”相当于换行打印。如果没有加上打印“\n”,则下一个打印数据将接着前一个数据的右边打印,而不会自动换行打印。cat()函数也可用于打印向量对象。
cat()函数是无法正常输出其他类型数据的,下列是尝试输出数据框(也是列表的一种)失败的案例:
如果想打印其他数据类型对象,一般可以使用先前已大量使用的print()函数。
三、读取数据:scan()函数
使用scan()函数可以读取屏幕输入或外部文件的数据,若要结束读取屏幕输入,可以直接使用"Enter"键,它的使用格式如下:
scan(file=" ",what=double(),nmax=-1,n=-1,sep=" ",skip=0,nlines=0,na.strings="NA")
更详细的scan()函数可参考“help(scan)”。
- file:所读的文件,如果不设定代表读取屏幕输入。
- what:可设定输入数据类型,默认是双精度实数,可以是整数(Integer),字符(character),逻辑值(logical),复数(complex),也可以是列表数据。
- nmax:限定读入多少数据,默认是-1,表示无限制。
- n:设定总共要读多少数据,默认是-1,表示无限制。
- sep:数据之间的分隔符,默认是空格或换行符。
- skip:设定跳过多少行才开始读取,默认是0。
- nlines:如果是正数则表示设定最多读入多少行数据。
- na.strings:可以设定遗失值得符号,默认是NA。
四、输出数据:write()函数
write()函数可以将一般向量或矩阵数据输出到屏幕或外部文件,这个函数的使用格式如下:
write(x,file="data",ncolumns=k,append=FALSE,sep=" ")
- x:要输出的向量或矩阵。
- file:输出至指定文件,如果是“ ”则代表输出至屏幕。
- ncolumns:指出输出排成几列,默认如果是字符串则按1列输出,如果是数值数据则按5列输出。
- append:默认是FALSE,如果是TRUE则在原文件有数据时,将输出数据接在原数据后面。
- sep:设定各数据间的分隔符。
五、数据的输入
实用的数据一般均是以窗口或电子表格方式呈现,本节将针对这类数据做说明。
5.1 读取剪贴板数据
针对有些数据,可以先将它复制,复制后可以在剪贴板上看到这些数据,然后再利用readClipboard()函数读取。例如,在Excel内看到数据,假设你选取了C1:D5,然后将它复制到剪贴板。
注:readClipboard()函数不支持macOS系统。
由上述执行结果,我们成功读取了剪贴板的文件,但可以看到所读的数据有些乱,同时看到了“\t”符号,这是构成电子表格的特殊字符,所以如果想要将电子表格数据转成R语言可以处理的数据,那么还需要一些步骤,后面小节会做说明。
5.2 读取剪贴版数据:read.table()函数
read.table()函数配合适当参数可以读取剪贴板数据,这个函数的使用格式有些复杂,在此只列出几个重要参数。
- file:带读取的文件,如果是读剪贴板则是输入“clipboard”。
- sep:数据元素的分隔符,由上一小节可知Excel的分隔符是“\t”。
- header:可设定是否读取第1行,第1行通常是数据的表头,该参数值默认是FALSE。
5.3 读取Excel文件数据
若想要读取Excel文件,可以使用XLConnect扩展包来协助完成这个工作,但首先要下载安装这个扩展包,可参考以下步骤。
接着执行将XLConnect加载到数据库的代码。
六、数据的输出
6.1 writeClipboard()函数
writeClipboard()函数可以将数据输出至剪贴板。它与readClipboard()函数一样目前并不支持macOS。
在屏幕上看不到任何结果,但如果进入Excel窗口,再单击“粘贴”按钮,即可看到上述命令的执行结果。
6.2 write.table()函数
write.table()这个函数的基本使用格式和各参数意义如下所示:
write.table(x,file=" ",quote=TRUE,sep=" ",eol="\n",na="NA",dec=".",row.names=TRUE,col.names=TRUE)
- x:矩阵或数据框对象。
- file:外部文件名,如果是“ “,则表示输出至屏幕,clipboard代表输出至剪贴板。
- sep:表示输出时字符串两边需加" "号。
- eol:代表end of line的符号,macOS系统可用”\r“,UNIX系统可用"\n",Windows可用"\r\n"。
- row.names:输出时是否加行名,默认是TRUE。
- col.names:输出时是否加列名,默认是TRUE。
在屏幕上看不到任何结果,但如果进入Excel窗口,再单击”粘贴“按钮,即可看到上述命令执行的结果。