2017-08-02 61 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

沒關係。 –