如何使用gsub替换?

时间:2016-06-22 09:56:05

标签: r dataframe 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))

3 个答案:

答案 0 :(得分:3)

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

 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"

答案 1 :(得分:1)

以下内容也适用:

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

答案 2 :(得分:1)

函数[[:punct:]]用于删除标点字符** :! &#34; #$%&amp; &#39; ()* +, - 。 / :; &LT; =&gt; ? @ [\ _] ^ _` {| } **

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