如何替换使用 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
我有如下数据,我想替换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