我有一个与这里提出的问题类似的问题:r 删除列名中某些字符之后的部分不过我有一点皱纹。我的列标题的格式如 ENSG00000124564.16 和 ENSG00000257509.1,但是我想删除后面的所有字符.
我不能只删除最后 x 个字符,因为列标题后面的字符数有所不同.
symbol
如果我按照sub()
上一个问题中的命令,如下所示:sub(".*", "", colnames(dataset[6:ncol(dataset)]))
,它什么也不做。我假设因为在正常命令中.
符号用于分隔您要搜索的字符串和*
符号来代表其后的任何内容。
如何更改要使用的代码.
作为字符串搜索符号?这可能是一个非常简单的问题。
你可以这样逃离经期\\.
:
x <- "ENSG00000124564.16"
sub("\\..*", "", x)
#[1] "ENSG00000124564"
update:
## if you have list of strings it works
x <- c("ENSG00000124564.16", "ENSG00000257509.1")
sub("\\..*", "", x)
# [1] "ENSG00000124564" "ENSG00000257509"
## if you want to try it to change the column names it works
df <- data.frame(ENSG00000124564.16 = c(1, 2, 3), ENSG00000257509.1 = c(1, 1, 1))
names(df) <- sub("\\..*", "", names(df))
# ENSG00000124564 ENSG00000257509
#1 1 1
#2 2 1
#3 3 1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)