我使用这行代码来转置数据集:
b2<-reshape(b1,timevar="Species",idvar="PointId",direction="wide")
结束了这样的事情:
Point Final$Count.tot.SPEC1 Final$Count.tot.SPEC2 ... FINAL$Count.tot.SPEC99
1 1 2 ... 0
2 3 0 ... 0
我想通过删除“Final $ Count.tot”重命名“Point”之后的所有列。从名字,所以我有:
Point SPEC1 SPEC2 ... SPEC99
1 1 2 ... 0
2 3 0 ... 0
我尝试过使用它:
names(b2)<-gsub("Final$Count.tot.","",names(b2))
但它会挂在非字符上。我搜索过Stack Overflow但没有找到适用于这种情况的解决方案。非常感谢任何帮助。
答案 0 :(得分:1)
$
是正则表达式中的特殊字符(确定行结尾,请参阅?regexp
)。您必须使用\\$
或设置fixed=TRUE
(请参阅?gsub
):
x <- c("Point", "Final$Count.tot.SPEC1", "Final$Count.tot.SPEC2")
gsub("Final$Count.tot.", "", x=x, fixed=TRUE)
# [1] "Point" "SPEC1" "SPEC2"