R语言获取中文文件

                                    使用R读取文件

R常用的读取文件的方式是read.csv、read.table、read.xlsx,分别对应csv、txt、xlxs格式的文件,一般情况下使用txt、csv格式的文件比较多,xlxs我是未成功被R读取到过,若将xlsx变为csv格式的时候,需要将xlsx另存为csv格式,不是该个后缀那么简单。在读取文件的时候遇到的问题及解决办法。
**背景:**读取的文件含有多列中文
**系统:**windows10
出现的问题:
Warning messages:
1: In read.table(“huaxiang.txt”, sep = " “, fileEncoding = “utf-8”, :
invalid input found on input connection ‘huaxiang.txt’
2: In read.table(“huaxiang.txt”, sep = " “, fileEncoding = “utf-8”, :
incomplete final line found by readTableHeader on ‘huaxiang.txt’
中间试的过程省略,原因是文件编码不对。
因此将txt文件的编码形式先转为utf-8,在用 read.table(“huaxiang.txt”, sep = " “, fileEncoding = “utf-8”),发现可以正常导入数据。但summary这个数据的时候,数据是怪异的,原因是分隔符即sep=” “用的不对,因此将语句改为 read.table(“huaxiang.txt”, sep = “\t”, fileEncoding = “utf-8”)即可正常导入和显示。
补充知识点:
1.读入数据前的文件编码
不管是csv还是txt(经测试过),保存时编码选择UTF-8。
2.文件路径不能含有中文
3. read.table里面有个参数是sep,它的意思是分开数据值,关于分空白分隔符,制表符,换行符,根据文件内容使用分割符可以将文件分成垂直列,相应的形式如下:
常见空白分隔符有:空格,制表符,换行符
sep=” ”;sep = “\t”;sep = “\n”
如数据是a,c,v,b,那么分隔符是逗号“,”
如数据是从excel符合得来,分割符号是制表符”\t”
具体可参考这篇博客:
https://blog.csdn.net/thoixy/article/details/40506361
4.读取文件参数中fileEncoding与encoding的区别,读取文件是适用fileEncoding可以正常读入,当改为encoding的时候,则出现下面问题。
Error in make.names(col.names, unique = TRUE) :
invalid multibyte string 4
代码是:
read.table(“huaxiang.txt”,sep=”\t",header = T,encoding = “utf-8”,stringsAsFactors=F)
改变编码使用fileEncoding,不要用encoding,这个已经在多个博客中强调过,本博客再次强调一次。
5.读入数据不正确
使用stringsAsFactors=FALSE进行设置即可防止类型发生转化导致数据不正常,讲解同样可以参考下面博客:
https://blog.csdn.net/thoixy/article/details/40506361

你可能感兴趣的:(机器学习)