我正在使用gsub
和paste
来更改数据框的列。特别是,对于以.h
结尾的所有列,其中h
是从0
到23
的数字,我使用以下脚本(例如,变量{{1} })
p.1
该脚本不适用于所有不以h <- 1
gsub(paste(".", h, sep = ""), "", "p.1")
# "p" # correct!
结尾的变量。例如
.h
但是,此代码产生“pro0”,而不是“prob10”。类似地,
h <- 1
gsub(paste(".", h, sep = ""), "", "prob10")
# "pro0" # not correct!
给了我错误的答案。我不明白为什么h <- 0
gsub(paste(".", h, sep = ""), "", "prob10")
# "prob" # not correct!
不起作用(首先)以及为什么后两个例子给出不同的结果。谢谢。
答案 0 :(得分:1)
gsub很好用,就像你期望的那样。 因为&#34;。&#34;是一个元字符。
元字符的最简单的例子是句号。
&#39;&#39; 句号符合任何类型的任何单个字符(除此之外) 来自换行符)。
例如,正则表达式&#34; .at&#34;意思是:任何 信后面是字母&#39; a&#39;后面是字母&#39;。&#39;
&#34; .AT&#34; =&GT; 席上的 cat 坐。
(见https://www.stat.auckland.ac.nz/~paul/ItDT/HTML/node84.html)
你的工作代码是
for (h in 23:0)
{gsub(paste(".", h, sep = ""), "", "p.1", fixed = TRUE)
}