我有以下数据,我想替换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))
答案 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