可能重复:
从 data.frame 中“解包”一个因子列表
如果我有一个与这样的格式相同的数据框
X geneA,geneB
Y geneD,geneF
Z geneH,geneL,geneS
我正在尝试找到一种快速有效的扩展方式,以便我可以拆分(用逗号)第二列并分配第一列的相应值给我这样的东西
X geneA
X geneB
Y geneD
Y geneF
Z geneH
Z geneL
Z geneS
先谢谢了!
可能重复:
从 data.frame 中“解包”一个因子列表
如果我有一个与这样的格式相同的数据框
X geneA,geneB
Y geneD,geneF
Z geneH,geneL,geneS
我正在尝试找到一种快速有效的扩展方式,以便我可以拆分(用逗号)第二列并分配第一列的相应值给我这样的东西
X geneA
X geneB
Y geneD
Y geneF
Z geneH
Z geneL
Z geneS
先谢谢了!
这是使用melt.list
包中的解决方案reshape2
:
library(reshape2)
dat = read.table(header=FALSE, stringsAsFactors=FALSE,
text="X geneA,geneB
Y geneD,geneF
Z geneH,geneL,geneS")
lst = strsplit(dat$V2, ",")
names(lst) = dat$V1
res = melt(lst)
res
# value L1
# 1 geneA X
# 2 geneB X
# 3 geneD Y
# 4 geneF Y
# 5 geneH Z
# 6 geneL Z
# 7 geneS Z