strsplit没有表现出预期的R

时间:2016-08-31 20:39:35

标签: r split

我在R中遇到一个基本问题,我所熟悉的一切对我来说都很熟悉(数据,功能),但出于某种原因我无法获得strsplit或{{1函数按预期工作。我也尝试了gsub包。我不打算使用该软件包来编写代码,因为我知道这个问题很简单,可以使用上面提到的两个函数来完成。就个人而言,我觉得为这个页面设置甚至是不必要的,但此时我的耐心相当薄弱。

我正在尝试删除"。" '以及'之后的数字。在Ensemble Gene ID中。很简单,我知道。

stringr

星号符号意味着在&#39;之后捕获任何东西。&#39;并删除它,但我不确定这是否是它的作用。 id <- "ENSG00000223972.5" gsub(".*", "", id) strsplit(id, ".") 肯定会输出两个项目的列表,第一个是&#39;之前的所有内容。第二个是后面的一位数。它返回的是一个包含17&#34;&#34;的列表。符号,没有空格,字符串中的每个字符都有一个符号。我认为这是一件显而易见的事情,但我还没有能够解决这个问题。提前致谢。

1 个答案:

答案 0 :(得分:2)

阅读?strsplit的帮助文件,您无法使用"."

id <- "ENSG00000223972.5"
gsub("[.]", "", id)
strsplit(id, split = "[.]")

输出:

> gsub("[.]", "", id)
[1] "ENSG000002239725"
> strsplit(id, split = "[.]")
[[1]]
[1] "ENSG00000223972" "5"  

帮助:

unlist(strsplit("a.b.c", "."))
## [1] "" "" "" "" ""
## Note that 'split' is a regexp!
## If you really want to split on '.', use
unlist(strsplit("a.b.c", "[.]"))
## [1] "a" "b" "c"
## or
unlist(strsplit("a.b.c", ".", fixed = TRUE))