如何替换使用 gsub?

how can replace using gsub?

我有如下数据,我想替换colnames

da

    ..B1  ..B2 ..B3
a      1     2    1
b      1     1    1

首选输出:

      B1    B2   B3
a      1     2    1
b      1     1    1

我使用了这个命令,但它不起作用:

da=gsub(pattern = "..", replacement = "", x = colnames(da))

.是一个元字符,表示任何字符。所以,如果我们使用

 gsub("..", "", x= colnames(da))

结果会是

#[1] "" "" ""

因为所有字符都被删除了。我们需要使用 fixed = TRUE 或转义 .

colnames(da) <- gsub("..", "", x= colnames(da), fixed=TRUE)
colnames(da)
#[1] "B1" "B2" "B3"

gsub("\.+", "", colnames(da))
#[1] "B1" "B2" "B3"

以下内容也适用:

da<-data.frame(..B1=c(1,1), ..B2=c(2,1), ..B3=c(1,1))

colnames(da) <- gsub("[.]","", x=colnames(da))

附带说明,这将删除名称中任何位置的任何句点;在某些情况下,您不希望那样。以下将删除开头的两个句点:

colnames(da) <- gsub("^..","", x=colnames(da))

函数 [[:punct:]] 用于删除标点符号**: ! " # $ % & ' ( ) * + , - . / : ; < => ? @ [ \ ] ^ _ ` { | }**

colnames(da) <- gsub("[[:punct:]]","",colnames(da))
> da
      B1 B2 B3
    1  1  2  1
    2  1  1  1