Category Genes
"Tissue morphology" "AKT, TGF1B, IFNG, IgG, Igm"
"Tissue morphology" "ELOVL3, EREG, FABP5, FOXP3, glycerol, GSTO1, HDAC1"
"Tissue morphology" "AKT, FABPS, Igm"
"Cell growth" "AICDA, BID, CD200R1, CD36, CSF2"
"Cell growth" "5-hydroxytryptamine, adenosine triphosphate, AICDA"
我有几个表,其中包含几个具有相同值的行("分类"),但在“Genes”列中有一些不同/相同的值。我想将所有行合并为#34;类别"一起成一行并保持唯一的一行并删除重复。 有没有更好的方法来解决这个问题?我试过"相交"和"合并"。但是,不是真的很干净和容易。 我已经找到了答案,但还没找到任何答案,所以我非常感谢任何帮助!
Category Genes
"Tissue morphology" "AKT, TGF1B, IFNG, IgG, Igm, ELOVL3, EREG, FABPS, FABP5, FOXP3, glycerol, GSTO1, HDAC1"
"Cell growth" "5-hydroxytryptamine, adenosine triphosphate, AICDA, BID, CD200R1, CD36, CSF2"
答案 0 :(得分:1)
为此,我们可以使用data.table
(其他选项包括aggregate
,dplyr
等)。将“data.frame”转换为“data.table”(setDT(df1)
),按“类别”分组,拆分列“Genes”(strsplit
),unlist
,{{1粘贴在一起(sort
是toString
)
paste(., collapse=", ")
或者可以删除重复元素而不拆分字符串,但不会按字母顺序排序
library(data.table)
DT1 <- setDT(df1)[, list(Genes=toString(sort(unique(unlist(strsplit(Genes,
', ')))))), by=Category]
DT1$Genes
#[1] "AKT, ELOVL3, EREG, FABP5, FABPS, FOXP3, glycerol, GSTO1, HDAC1, IFNG, IgG, Igm, TGF1B"
#[2] "5-hydroxytryptamine, adenosine triphosphate, AICDA, BID, CD200R1, CD36, CSF2"