资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

如何在R语言中对文本文件进行读写-创新互联

如何在R语言中对文本文件进行读写?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

网站建设公司,为您提供网站建设,网站制作,网页设计及定制网站建设服务,专注于成都定制网页设计,高端网页制作,对阳台护栏等多个行业拥有丰富的网站建设经验的网站建设公司。专业网站设计,网站优化推广哪家好,专业营销推广优化,H5建站,响应式网站。

具体如下:

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')

如何在R语言中对文本文件进行读写

如何在R语言中对文本文件进行读写


可以设置不要行名将前面没有意义的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只是数据保存时格式的描述,不是默认保存文件的扩展名
> #扩展名需要自己在文件名中写清楚,文件存储格式打开方式是和文件扩展名有关的。

如何在R语言中对文本文件进行读写

看完上述内容,你们掌握如何在R语言中对文本文件进行读写的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!


网站题目:如何在R语言中对文本文件进行读写-创新互联
文章位置:http://cdkjz.cn/article/ejgpg.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220