前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何删掉R列表里面的空元素

如何删掉R列表里面的空元素

作者头像
生信交流平台
发布2022-09-21 15:12:12
1.1K0
发布2022-09-21 15:12:12
举报
文章被收录于专栏:用户7627119的专栏

前面我们讲过

☞R批量预测miRNA和靶基因之间的调控关系-ENCORI篇

R批量预测miRNA和靶基因之间的调控关系-TargetScan篇

miRNA数据库简介及miRNA靶基因批量预测

思路就是将所有miRNA的靶基因做成一个以miRNA名字来命名的列表,批量预测你自己候选miRNA的靶基因,就只需要取这个列表的子集就可以了。

可能有些小伙伴用这个方法去预测的时候,会遇到一个warning,原因就是你的候选miRNA不在我们的列表里面。你去取子集的时候,得到的结果列表里面会有空元素。对于包含空元素的列表去做stack(R中的stack和unstack函数)的时候,就会出现下面这个warning。这个警告并不会影响我们最后的结果,但是有些小伙伴可能有强迫症,不想看到任何警告。

那么今天我们就来给大家介绍两种去除列表里面空元素的方法

我们先来生成一个列表,这个列表有三个元素,名字分别为a,b和d。

代码语言:javascript
复制
data=list(a=1:5,b=letters[1:6],d=2:4)

接下来我们来模拟取子集的过程,假设我们要取的子集的名字为"a","b","e",很显然,这里的e不在我们的列表里面。所以返回的结果里面会有一个空元素。如果你拿这个包含空元素的列表去stack就会出现上面的error

代码语言:javascript
复制
id=c("a","b","e")
result=data[id]
代码语言:javascript
复制
stack(result)

虽然有一个warning,但你你会发现结果是没有问题的。

接下来我们来看看,如何消除这个warning

方法一、判断列表的name是否为NA

代码语言:javascript
复制
#此时不存在的id,name为NA,取name不是NA的元素
result=result[!is.na(names(result))]
result

再去stack就没有任何问题了

方法二、判断列表元素的内容是否为NULL

代码语言:javascript
复制
data=list(a=1:5,b=letters[1:6],d=2:4)
id=c("a","b","e")
result=data[id]
#先把id赋给list的name,再通过判断内容是否为null来过滤
names(result)=id
result=result[!sapply(result,is.null)]
result

跟上一种方法得到的结果是一样的,再去stack也没有任何警告了。

参考资料:

1.R批量预测miRNA和靶基因之间的调控关系-ENCORI篇

2.R批量预测miRNA和靶基因之间的调控关系-TargetScan篇

3.miRNA数据库简介及miRNA靶基因批量预测

4.R中的stack和unstack函数

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-04-08,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档