2013-05-09 101 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