首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将第4栏中的两个字母字符串分开

将第4栏中的两个字母字符串分开
EN

Stack Overflow用户
提问于 2018-02-05 23:19:53
回答 3查看 256关注 0票数 0

我有一个数据框架- df -与基因组数据。最后一首歌有两个字母变体。

代码语言:javascript
复制
               id crm     pos allele
160841  rs2237282  11 1273948     AG
160842  rs6417577  11 1276796     AC
165677  rs2151342  11 1199626     GT
165678  rs2749240  11 1258025     AG

我想把最后一封信分成两份,一份一份。

代码语言:javascript
复制
               id crm     pos allele allele2
160841  rs2237282  11 1273948     A       G
160842  rs6417577  11 1276796     A       C
165677  rs2151342  11 1199626     G       T
165678  rs2749240  11 1258025     A       G

我在RStudio 1.1.419,R3.4.3中尝试了使用dplyr和tidyr,但没有成功:

  • 分离(df,等位基因,into=c(“等位基因”,"allele2"))
  • 分离(df,等位基因,into=c(“等位基因”,"allele2"),sep="")
  • 分离(df,等位基因,into=c(“等位基因”,"allele2"),sep="\c")
  • 分离(df,等位基因,into=c(“等位基因”,"allele2"),sep=“。
  • 分离(df,等位基因,into=c(“等位基因”,"allele2"),sep=.)
  • 分离(df,等位基因,into=c(“等位基因”,"allele2"),sep=\c)

我怎样才能得到想要的分裂呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-02-05 23:28:05

separate中,sep参数可以是数字参数,并表示要拆分的字符位置,因此:

代码语言:javascript
复制
separate(df, allele, into = c("allele1", "allele2"), sep = 1)

给予:

代码语言:javascript
复制
              id crm     pos allele1 allele2
160841 rs2237282  11 1273948       A       G
160842 rs6417577  11 1276796       A       C
165677 rs2151342  11 1199626       G       T
165678 rs2749240  11 1258025       A       G
票数 5
EN

Stack Overflow用户

发布于 2018-02-05 23:26:09

使用基数r:

代码语言:javascript
复制
HERE=data.frame(A1=character(),A2=character())
cbind(data,strcapture("(.)(.)",data$allele,HERE))
              id crm     pos allele A1 A2
160841 rs2237282  11 1273948     AG  A  G
160842 rs6417577  11 1276796     AC  A  C
165677 rs2151342  11 1199626     GT  G  T
165678 rs2749240  11 1258025     AG  A  G
票数 6
EN

Stack Overflow用户

发布于 2018-02-06 02:21:15

除了separate之外,extract提尔包的另一个选项。这可以通过在regex参数中指定捕获组来实现。

代码语言:javascript
复制
library(tidyr)

df %>%
  extract(allele, into = c("allele1", "allele2"), regex = "([ATCG])([ATCG])")
#               id crm     pos allele1 allele2
# 160841 rs2237282  11 1273948       A       G
# 160842 rs6417577  11 1276796       A       C
# 165677 rs2151342  11 1199626       G       T
# 165678 rs2749240  11 1258025       A       G
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48633088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档