"R实战"专题·第3篇
编辑 | 科白君
本期推送内容
紧接着上回讲解,与大家分享一下剩余的常见报错。Let’s go~
想学习R语言入门+分析的朋友可以持续关注微信公众号:科白君的土壤世界
8)注释的信息显示乱码,这是新手常遇到的问题。首先,注释信息在你每次编辑一条代码之前、中间以及之后都可以进行。其次,你每次编辑完注释信息保存时都需要选择一种encoding,也就是编码方式。在windows系统下,read.csv ( )和read.table ( )方法不指定文件格式时,默认读取的格式为GBK(GB2312)。Rstudio里面有设置默认文本编码方式,但是修改前后读入中文数据情况都一样,encoding为UTF-8或GB2312都相同。然而,在Linux系统下,系统指定中文编码方式是UTF-8,所以read.csv ( )和read.table ( )都要求UTF-8。如下两个文件,分别是UTF-8格式和GBK格式,首先用read.csv读取,可以看到不指定编码方式时,读取UTF-8格式文件是乱码。用encoding指定读取的文件编码方式为UTF-8后,正常。这样看起来read.csv ( )方法读取UTF-8好像可行?总结一下,如果大家看不懂上面这一串没关系,在保存文件时选用UTF-8的编码格式,以及在打开一份code时,如果中文乱码就用UTF-8打开。无论保存还是打开文件都选择UTF-8格式即可。
9)object 'mydata' not found,这个报错是之前讲过的问题--没有找到目标变量。但是,我用一个例子告诉大家,这里不是因为没有读取之前的目标,而是在编辑代码的过程中可能因为粗心等因素出现代码的小错误。具体情况如下:
10) 'x' and 'w' must have the same length, 这类错误也是较为常见的报错--通常为两个数据框的数据行与列长度不同。新手在出现这类报错时,第一反应看你在读取两个数据框时的数据行列数是否满足长度对等关系。我们通过下面例子来讲解这个报错需要注意的问题:我们在做一些需要两个数据集的分析时(例如beta分析,即在探究环境因子与微生物群落的关系时的一些距离分析,特别需要注意这个行列对等问题,因为代码只能识别行列对等的矩阵。这里,我们要记住读取数据时的几个比较重要的函数,header=T 这是个默认的函数,header=T 表示第一行设为每列的列名,这是默认代码,如果不需要可以将T改为F。row.names=1表示第一列设为每行的行名。有这个代码,意味着会少一列,注意这个函数在使用时要保证没有重复的名称。
11)我们在调用程序R包、函数名时,要注意一个小问题--字母的大小写。这里,我直接用例子给大家展示:head ( )、Head ( )以及HEAD ( )这里只有第一个函数名是能够正常运行的,因为在R语言中只存在自带函数名的字母大小写,也就是说,程序中不会默认都是大写或者都是小写。
12)最后,我将这两个易犯的小错误合一起与大家分享。第一,忘记使用必要的引号;第二,在使用函数名时忘记使用括号。其实,这两类错误可能在之前也有提到一点。但是,这里我单独将他们拿出来讲,考虑到这两类错误新手特别容易犯。但是两类错误也是特别容易解决,只要在写代码的时候稍微小心一点就可以啦~
下面我用一些具体的例子和大家展示:
网友评论