在R中重塑后重命名列

时间:2013-05-09 17:24:21

标签: r

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

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

1 个答案:

答案 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"