R的read.table小技巧

前面给大家讲过☞如何查看R自带函数源代码,那么如何查看一个R函数的使用方法和例子呢?其实也很简单,我个人比较常用也比较推荐的方法是

?+函数名字

我们结合常用的R函数,read.table来举个例子

首先我们来看看read.table的使用方法,

?read.table

感兴趣的可以仔细去阅读一下,read.table这个函数的使用方法。今天我们主要给大家介绍几个比较实用的小技巧。

1.comment.char参数的使用

这个参数是什么意思呢?就是如果你设置了这个参数,一般是一个字符串,那么R读文件的时候,会自动跳过所有以这个字符串开始的行。下面我们来具体的看一个例子。假设我想读下面这个文件test1.txt里面的内容。

这个文件的前五行都是注释,是以"#"开始的。

一般比较传统的做法,可能是通过skip跳过这5行。

a=read.table("test1.txt",skip = 5,header=T,sep="\t")
a

这个方法可以实现我们想要的效果,但是不太灵活。每一次你都要去数应该跳过几行。如果另外一个文件前面不是5行注释,那么还需要修改代码。

接下来我们看看comment.char这个参数

b=read.table("test1.txt",comment.char = "#",header=T,sep="\t")
b

可以看到结果跟上面skip方法得到的是一样的,但是这个方法普适性更强一些,无论你的文件前面有多少行注释,只要是以"#"开始,那么都会被跳过去。

2.stringsAsFactors参数的使用

这个参数主要控制读入的字符串向量是否需要被转换成因子。一般默认情况下字符串会被转换成因子。

b=read.table("test1.txt",comment.char = "#",header=T,sep="\t")
b$gene

如果不想让字符串转换成因子,那么我们可以将stringsAsFactors设置成False

b=read.table("test1.txt",comment.char = "#",header=T,sep="\t",stringsAsFactors = F)
b$gene

3.check.names参数的使用

默认情况下这个参数check.names = TRUE,这个参数主要是检查数据的列名,保证列名合法有效。

假设我们有下面这个文件test2.txt,如果我们把第一行作为列名用read.table读到R里面,会出现什么情况?

a=read.table("test2.txt",header=T,sep="\t")
a

你会发现,列名前面自动加上了X,因为我们知道在R里面一般变量名不能是数字,也不能以数字开头。如果想保留原来的列名,可以使用check.names = F。

a=read.table("test2.txt",header=T,sep="\t",check.names = F)
a

4.fill参数的使用

有时候我们读入的文件,可能某些行缺少一些值,跟其他行的长度不一样。如果我们直接用read.table去读,可能会报错。

假设我们有下面这个文件test3.txt

这时如果设置fill=T,将会自动把缺失的值用NA补齐。

a=read.table("test3.txt",header=T,sep="\t",fill=T)
a

获取文中用到的数据和代码

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容