Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
strsplit的行为不符合预期R_R_Split - Fatal编程技术网

strsplit的行为不符合预期R

strsplit的行为不符合预期R,r,split,R,Split,我在R中有一个基本问题,我所使用的一切都是我所熟悉的(数据、函数),但由于某种原因,我无法使strsplit或gsub函数按预期工作。我还尝试了stringr包。我不打算费心用这个包编写代码,因为我知道这个问题很简单,可以用上面提到的两个函数来完成。就我个人而言,我觉得为这篇文章写一页是没有必要的,但我的耐心在这一点上是非常有限的 我正在尝试删除集合基因ID中的“.”和后跟“.”的数字。很简单,我知道 id <- "ENSG00000223972.5" gsub(".*", "", id)

我在R中有一个基本问题,我所使用的一切都是我所熟悉的(数据、函数),但由于某种原因,我无法使
strsplit
gsub
函数按预期工作。我还尝试了
stringr
包。我不打算费心用这个包编写代码,因为我知道这个问题很简单,可以用上面提到的两个函数来完成。就我个人而言,我觉得为这篇文章写一页是没有必要的,但我的耐心在这一点上是非常有限的

我正在尝试删除集合基因ID中的“.”和后跟“.”的数字。很简单,我知道

id <- "ENSG00000223972.5"
gsub(".*", "", id)
strsplit(id, ".")

id阅读
?strsplit
的帮助文件,您不能使用

帮助:

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))

像gsub中的
“\\。”
那样对其进行转义,或者使用fixed=TRUE。另外,您应该注意到您没有分配gsub的结果。我不知道这一点,应该仔细查看帮助页面。谢谢
> 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))