使用正则表达式拆分列中的值
发布时间:2020-12-14 06:03:25 所属栏目:百科 来源:网络整理
导读:我有data.frame有两列,如下所示 dat ID Details id_1 box1_homodomain gn=box1 os=homo sapiens p=4 se=1 id_2 sox2_plurinet gn=plu os=mus musculus p=5 se=3 我想在所有ID的“详细信息”列中拆分“os = xxx”和gn =“yyy”,并将其打印如下: Id Descripti
我有data.frame有两列,如下所示
dat ID Details id_1 box1_homodomain gn=box1 os=homo sapiens p=4 se=1 id_2 sox2_plurinet gn=plu os=mus musculus p=5 se=3 我想在所有ID的“详细信息”列中拆分“os = xxx”和gn =“yyy”,并将其打印如下: Id Description gn os ?d_1 box1_homodomain box1 homo sapiens Id_2 sox2_plurinet plu mouse musculus 我尝试在R中使用gsub方法,但我无法将os = homo sapiens和gn = box1分成各自的列.我用的是以下R代码 dat$gn=gsub('^[gn=][A-z][A-z]`,dat$Details) dat$os=gsub('^[os=][A-z][A-z]`,dat$Details) 任何人都可以告诉我什么是错的,如何纠正.请帮助我. 提前致谢 解决方法
这是tidyr的一个选项:
library(tidyr) # specify the new column names: vars <- c("Description","gn","os") # then separate the "Details" column according to regex and drop extra columns: separate(dat,Details,into = vars,sep = "[A-Za-z]+=",extra = "drop") # ID Description gn os #1 id_1 box1_homodomain box1 homo sapiens #2 id_2 sox2_plurinet plu mus musculus (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |