R:将数据框的列格式化为与查找表兼容
我有两个格式不稳定的data.Frame。一个是大型引用,另一个是我想查找的子集,以便从引用中提取其他数据,但格式化很困难 较小的子集如下所示:R:将数据框的列格式化为与查找表兼容,r,bioinformatics,data-cleaning,R,Bioinformatics,Data Cleaning,我有两个格式不稳定的data.Frame。一个是大型引用,另一个是我想查找的子集,以便从引用中提取其他数据,但格式化很困难 较小的子集如下所示: > head(lookup, n = 2) gene_id class_code nearest_ref_id 1 XLOC_001184 <NA> <NA> 2 XLOC_001225 <NA> <NA> >
> head(lookup, n = 2)
gene_id class_code nearest_ref_id
1 XLOC_001184 <NA> <NA>
2 XLOC_001225 <NA> <NA>
> gene_short_name
1 ORF%20Transcript_11308%7Cg.37058%20Transcript_11308%7Cm.37058%20type%3Acomplete%20len%3A195%20%28%2B%29
2 ORF%20Transcript_11347%7Cg.37236%20Transcript_11347%7Cm.37236%20type%3A5prime_partial%20len%3A87%20%28%2B%29
locus length coverage
1 Transcript_11308:0-1727 NA NA
2 Transcript_11347:0-1584 NA NA
参考$seq_names
中有一个空格,查找$lock
中有一个:
,后面有一些额外的数字
一些引用$seq_名称
具有更多空格的额外信息。例如:
4 Transcript_3 len=440 CDS=1-439 exon=0-440 five_prime_UTR=439-440 gene=0-440 mRNA=0-440 three_prime_UTR=0-1
转录本_1234
位是唯一标识符
最后,我想为每个
lookup$lock
检索reference$sequences
,并将其附加到一个新列lookup$sequence
,或者创建一个只包含XLOC_1234
、转录本_1234
位和相应序列的新数据框。感谢您的建议。根据您提供的信息,我在这里为您提供一些解决问题的建议/策略。假设您的数据类型是data.frame
s,而不是像genomarranges
这样的专门类。(使用功能class
进行双重检查)
- 首先,您需要清理列
,方法是去除您提到的多余空间。诸如reference$seq_names
和gsub
之类的功能将非常有用。看str_replace
- 类似地,需要清理
data.frame。要在查找
之后删除文本/数字,函数:
是您的朋友;您可以将其与正则表达式相结合,删除感兴趣的符号后的所有内容。例如:gsub
查找$locus4 Transcript_3 len=440 CDS=1-439 exon=0-440 five_prime_UTR=439-440 gene=0-440 mRNA=0-440 three_prime_UTR=0-1