2013-05-09 99 views
0

我用这行代码移调数据集:重命名列重塑中的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 

我希望以后所有列重命名“点“通过删除”最终$计数。“。从名字,让我有:

Point SPEC1 SPEC2 ... SPEC99 
    1 1  2 ... 0 
    2 3  0 ... 0 

我一直在使用这种尝试:

names(b2)<-gsub("Final$Count.tot.","",names(b2)) 

但这样做的挂了非字符。我已经搜索了Stack Overflow,但还没有找到适用于这种情况的解决方案。任何帮助深表感谢。

回答

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" 
+0

这做到了 - 谢谢!我确实签出了?gsub,但帮助文件的编写方式经常难以解释。在这里,它表示:“固定:逻辑,如果为真,模式是一个要匹配的字符串,覆盖所有冲突的参数。”我很困惑,因为我没有意识到缺省是不匹配模式。 – ktalent1 2013-05-09 17:41:36