前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R的read.table小技巧

R的read.table小技巧

作者头像
生信交流平台
发布2022-09-21 16:05:32
5410
发布2022-09-21 16:05:32
举报

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

?+函数名字

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

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

代码语言:javascript
复制
?read.table

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

1.comment.char参数的使用

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

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

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

代码语言:javascript
复制
a=read.table("test1.txt",skip = 5,header=T,sep="\t")
a

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

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

代码语言:javascript
复制
b=read.table("test1.txt",comment.char = "#",header=T,sep="\t")
b

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

2.stringsAsFactors参数的使用

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

代码语言:javascript
复制
b=read.table("test1.txt",comment.char = "#",header=T,sep="\t")
b$gene

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

代码语言:javascript
复制
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里面,会出现什么情况?

代码语言:javascript
复制
a=read.table("test2.txt",header=T,sep="\t")
a

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

代码语言:javascript
复制
a=read.table("test2.txt",header=T,sep="\t",check.names = F)
a

4.fill参数的使用

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

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

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

代码语言:javascript
复制
a=read.table("test3.txt",header=T,sep="\t",fill=T)
a
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-04-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信交流平台 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档