在列中不匹配整个文本以供参考

在列中不匹配整个文本以供参考,第1张

概述我有两个数据文件.第一个是我正在编译数据的“主表”,相关列看起来像: Family ID SizeTyrannidae Empidonax trailliiTyrannidae Empidonax atricepsConopophagidae Conopophaga lineata 大小是我想要填写的列.我需要将 我有两个数据文件.第一个是我正在编译数据的“主表”,相关列看起来像:

Family          ID                     SizeTyrannIDae      EmpIDonax trailliiTyrannIDae      EmpIDonax atricepsConopophagIDae  Conopophaga lineata

大小是我想要填写的列.我需要将来的分析ID包含属和物种名称.大小数据基于类别(ID中的第一个单词)在单独的文件中,如下所示:

Genus        SizeEmpIDonax     13Conopophaga   6

在R中是否有一种方法可以在ID列中匹配某些(而非全部)文本,以便能够填写“大小”列?期望的结果

Family          ID                     SizeTyrannIDae      EmpIDonax traillii     13TyrannIDae      EmpIDonax atriceps     13ConopophagIDae  Conopophaga lineata    6

或者将ID列拆分为两个更简单,填写Size然后将两者合并在一起?

谢谢

解决方法 由于data.table使X [Y]看起来非常合适.因此,这是一个data.table解决方案:

require(data.table)master <- data.table(Family=c("TyrannIDae","TyrannIDae","ConopophagIDae"),ID = c("EmpIDonax traillii","EmpIDonax traillii","Conopophaga lineata"))dt <- data.table(Genus = c("EmpIDonax","Conopophaga"),Size = c(13,6))# get Genusmaster[,Genus := gsub(" .*$","",ID)] # master$ID replaced by ID# set key to Genussetkey(master,"Genus")> master[dt] # X[Y]#          Genus         Family                  ID Size# 1:   EmpIDonax     TyrannIDae  EmpIDonax traillii   13# 2:   EmpIDonax     TyrannIDae  EmpIDonax traillii   13# 3: Conopophaga ConopophagIDae Conopophaga lineata    6
总结

以上是内存溢出为你收集整理的在列中不匹配整个文本以供参考全部内容,希望文章能够帮你解决在列中不匹配整个文本以供参考所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1042314.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存