R语言写入文件2021.2.24
2021-02-24 本文已影响0人
R语言_茶味先生
1、写入文件
使用write函数或者cat函数。
cat函数:直接抓取数据显示在代码框中。
write函数:file指定文件生成位置,sep指定生成文件中数据的分隔符。可以将文件写入工作目录下的新文件中(若文件要建在别的位置则需要给出完整路径),文件是代码运行自动生成,不需要提前建好。
1.1 write函数
1.1将数据写入.txt文件
先读取数据赋值给x,再用write写入文件
x<-read.table("input.txt",header=T)
write.table(x,file="newfile1.txt")
图1 生成的.txt文件
1.2 将数据写入.csv文件(同一组数据生成两种不同的文件这也就意味着用read读入数据后再用write写出,可以实现.txt文件和.csv文件格式的转换)
x<-read.table("input.txt",header=T)
write.table(x,file="newfile1.csv",sep=",")
图2 生成的.csv文件
但是这样会出现首行错位的现象,因为R语言在读入文件时会默认在第一列从一开始编号,这样多次读取写入后,会出现许多行号。
图3 写入再读取后出现两个行号
这时可以通过两种办法解决
- 在用read.table读取时加上sep参数
x<-read.table("newfile1.csv",header=T,sep=",")
图4 设置sep后冗余行号消失
- row.names设置为FALSE,这种方式只可以消除R语言每次读取时自动生成的行号,但是对于原文件自带的行号则无能为力。
write.table(x,file="newfile2.csv",sep=",",row.names=F)
图5 row.names设置前后对比
这种方法同时还可以避免写入的文件出现首行向量名称错位的情况
图6 首行错位
1.3. write函数的参数
1.3.1 quote参数
该参数用于去掉字符串双引号,write写入文件时字符串默认带双引号,要去掉的话则设置quote=FALSE
1.3.2 append参数
用于对已经生成好的数据,在不覆盖原先数据的情况下在尾部追加数据,append=TRUE则是追加到文件结尾,反之则为覆盖原文件。
图71.3. write写入压缩文件
将数据写入压缩文件内
write.table(mtcars,gzfile("newfile1.txt.gz"))
图8 生成的压缩文件
1.4 write写入其他软件格式文件
也是用到foreign包
图9 目前R支持写入的其他软件格式