2017-08-02 51 views
-1

我有一个表,我的专栏(MYDATA $基因)。每个人都有ID的这些都是格式:strsplit功能data.table

ENSG00000000419.8 
ENSG00000000460.12 

我希望了解如何使用strsplit功能删除.XX部分

所以我想我所有的输出出来作为

ENSG00000000419 
ENSG00000000460 

到目前为止,我已经尝试下面的代码:

strsplit(mydata$Gene, ".", fixed=TRUE) 

,但得到的错误:

Error in strsplit(mydata$Gene, ".", fixed = TRUE) : non-character argument

Error: '.' is an unrecognized escape in character string starting ""."

有什么建议?

谢谢你的时间。

+0

使用一个字符列,而不是一个因素? – Frank

+0

我也尝试过strsplit(as.character(“mydata $ Gene”),“\。”,fixed = TRUE),如果这就是你的意思,并且它的几次迭代来查看错误可能在哪里,但无济于事。 –

+0

你试过'strsplit(as.character(“mydata $ Gene”),“。”,fixed = TRUE)'? –

回答

1

这工作,因为你的数据看起来像它的一个因素:

> strsplit(as.character(mydata$Gene), ".", fixed=TRUE) 
[[1]] 
[1] "ENSG00000000419" "8"    

[[2]] 
[1] "ENSG00000000460" "12"    

,但是如果你想要的是点之前的文本,你可能会做的做了更换用更好的替代:

> sub("\\..*$","",mydata$Gene) 
[1] "ENSG00000000419" "ENSG00000000460" 
> 
+0

没关系。 –