我正在将字符串拆分为数据帧中的单独行,我不确定最佳方法是什么。如果我有一个看起来像这样的数据框:
Gene=c("Gene1","Gene2", "Gene3")
Alt=c("ABC, DEF", "XYZ", "ABC, XYZ")
df=data.frame(Gene, Alt)
目标是将字符串拆分成数据库中的单独行,以便数据框将拆分分配给数据框的下一行,如下所示:
Gene.b=c("Gene1", "Gene1", "Gene2", "Gene3", "Gene3")
Alt.b=c("ABC","DEF","XYZ","ABC","XYZ")
df2=data.frame(Gene.b, Alt.b)
我尝试使用Stringr使用不同的方法,但似乎无法将它们拆分为正确分配给相关基因的方式。我正在寻找一种与toString()函数相反的操作。
答案 0 :(得分:2)
我们使用separate_rows
中的tidyr
,并用rename_all
更改列名
library(tidyr)
library(dplyr)
separate_rows(df, Alt) %>%
rename_all(~ paste0(., '.b'))