我的 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
我想将“详细信息”列中的“os=xxx”和 gn="yyy" 拆分为所有 ID,并按如下方式打印:
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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)