本文主要介绍了R语言文本文件读写,分享给大家,具体如下:
read.table(file,sep,hesder) #file 文件路径 #sep 分隔符 #header 第一行是不是列名(如果第一行是列名导入的时候填TRUE;默认值是FALSE,即把第一行算作数据)
准备工作
为方便后面使用的相对路径,我们先使用setwd(路径)
设置路径,设置好之后可以用getwd()
获取当前路径进行检查。
> setwd("F:/r-test-data") > getwd() [1] "F:/r-test-data"
注意数据分隔符:
因为数据有时候是从数据库导出或者.xlsx里截取等等,所以有时候看起来是空白分隔却有着不一样的格式。
常见空白分隔符有:空格,制表符,换行符
sep=” ”;sep = “\t”;sep = “\n”
读取txt文件
将工作路径调制要导入文件所在的文件夹下,之后输入.txt的文件名和分隔符就可以导入数据了。
> data1 <- read.table('test.txt',sep = '\t',header = TRUE) > data1 CountryCode Language IsOfficial Percentage 1 ABW Dutch TRUE 5.3 2 AFG Dari TRUE 32.1 3 AFG Pashto TRUE 52.4 4 AIA English TRUE 0.0 5 ALB Albaniana TRUE 97.9 6 AND Catalan TRUE 32.3 7 ANT Dutch TRUE 0.0 8 ANT Papiamento TRUE 86.2 9 ARE Arabic TRUE 42.0 10 ARG Spanish TRUE 96.8 11 ARM Armenian TRUE 93.4 12 ASM English TRUE 3.1 13 ASM Samoan TRUE 90.6 14 ATG English TRUE 0.0 15 AUS English TRUE 81.2 16 AUT German TRUE 92.0 17 AZE Azerbaijani TRUE 89.0
读取CSV文件
CSV (逗号分隔值文件格式)
CSV”并不是一种单一的、定义明确的格式(尽管RFC 4180有一个被通常使用的定义)。因此在实践中,术语“CSV”泛指具有
以下特征的任何文件:
1. 纯文本,使用某个字符集,比如ASCII、Unicode、EBCDIC或GB2312;
2. 由记录组成(典型的是每行一条记录);
3. 每条记录被分隔符分隔为字段(典型分隔符有逗号、分号或制表符;有时分隔符可以包括可选的空格);
4. 每条记录都有同样的字段序列。
在数据
在R语言使用过程中最为常用的数据格式,有专门的读取函数read.csv(file,header)
(read.csv也可用于读取逗号分隔的.txt文件)。
读取Excel文件通常,先转为CSV格式,然后再使用。
这里的countrylanguage.csv文件,是我直接从MySQL数据库中导出.csv格式的数据集合。
> data2 <- read.csv('countrylanguage.csv',TRUE) > head(data2) > #通过head()函数可以读取前6行数据 CountryCode Percentage Percentage.1 Percentage.2 1 ABW Dutch TRUE 5.3 2 ABW English FALSE 9.5 3 ABW Papiamento FALSE 76.7 4 ABW Spanish FALSE 7.4 5 AFG Balochi FALSE 0.9 6 AFG Dari TRUE 32.1
读取Excel文件
一种需要配置java环境的读文件,如果大家电脑中没有装好的java环境,还是建议大家还是把.xlsx另存为.csv;如果本来就是JAVA语言使用者那就可以直接体验,不必繁琐的配环境了。
读取Excel需要使用到xlsx包,xlsx依赖于rjava包,rjava虽然是R语言包 但是使用环境需要JAVA语言编译环境JRE(JDK是JAVA的运行环境包括了JRE)。
安装流程:安装JDK->加载rJava->加载xlsx包
注意:R语言是一个大小写敏感的语言,大家下载和加载包时要注意包名里字母的大小写例如:install.packages('rjava')
会提示包名应该为rJava。
配置好jdk环境,加载好rJava和xlsx包就可以开始读取Excel文件了。
> data4 <- read.xlsx('countrylanguage.xlsx',sheetIndex = 1) > #读取文件 > data4 CountryCode Percentage Percentage.1 Percentage.2 1 ABW Dutch T 5.3 2 AFG Dari T 32.1 3 AFG Pashto T 52.4 4 AIA English T 0.0 5 ALB Albaniana T 97.9 6 AND Catalan T 32.3 7 ANT Dutch T 0.0 8 ANT Papiamento T 86.2 9 ARE Arabic T 42.0 10 ARG Spanish T 96.8
写入文件
可以保存成任意符号分隔的文件write.table(data,file,sep)
保存成文件的类型要自己以扩展名的方式写在‘file'字段里,比如test.csv
,test.doc
,test.xlsx
写CSV文件
write.csv(data,file)
#为了检验方便,这里我们把countrylanguage前六行数另存为.csv文件;当然文件的扩展名是可以自己指定的,当然文件里数据都是逗号分割的。 > data3 <- head(data2) > write.csv(data3,'save.csv') > write.csv(data3,'save.doc')
可以设置不要行名将前面没有意义的1,2…去掉write.csv(data3,'save.csv',row.names = FALSE)
得到结果
"CountryCode","Percentage","Percentage.1","Percentage.2" "ABW","Dutch",TRUE,5.3 "ABW","English",FALSE,9.5 "ABW","Papiamento",FALSE,76.7 "ABW","Spanish",FALSE,7.4 "AFG","Balochi",FALSE,0.9 "AFG","Dari",TRUE,32.1
写xlsx文件
将要保存的数据存成.xlsx文件
> write.xlsx(head(data3),'test.xlsx',row.names = FALSE) > #和之前写文件一样,write.‘type'(),type只是数据保存时格式的描述,不是默认保存文件的扩展名 > #扩展名需要自己在文件名中写清楚,文件存储格式打开方式是和文件扩展名有关的。