R - 从列中的值中删除逗号,并将分隔的值放入新行中

时间:2013-07-11 02:07:22

标签: r

我有一列基因符号,我直接从数据库中检索到,有些行包含两个或多个逗号分隔的符号(参见下面的示例)。

SLC6A13
ATP5J2-PTCD1,BUD31,PTCD1
ACOT7
BUD31,PDAP1
TTC26

我想删除逗号,并将分隔符号放入新行中,如下所示:

SLC6A13
ATP5J2-PTCD1
BUD31
PTCD1
ACOT7
BUD3
PDAP1
TTC26

我无法在R中找到直接的方法,有人有任何建议吗?

2 个答案:

答案 0 :(得分:4)

您可以使用此向量结果放入矩阵或data.frame:

vec <- scan(text="SLC6A13
 ATP5J2-PTCD1,BUD31,PTCD1
 ACOT7
 BUD31,PDAP1
 TTC26", what=character(), sep=",")
Read 8 items
 vec
[1] "SLC6A13"      "ATP5J2-PTCD1" "BUD31"        "PTCD1"        "ACOT7"        "BUD31"        "PDAP1"       
[8] "TTC26"       

也许:

 as.matrix(vec)

scan函数也可以从文件中读取。“text”参数仅在最近才添加,但它节省了输入file=textConnection("...")。)

答案 1 :(得分:1)

另一种选择是使用readLinesstrsplit

unlist(strsplit(readLines(textConnection(txt)),','))
 "SLC6A13"      "ATP5J2-PTCD1" "BUD31"        "PTCD1"        "ACOT7"        
 "BUD31"        "PDAP1"        "TTC26"