0

我使用这行代码来转置数据集:

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,但没有找到适用于这种情况的解决方案。任何帮助深表感谢。

4

1 回答 1

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"
于 2013-05-09T17:34:23.840 回答