2014-07-18 43 views
-1

我試圖使用str_c函數(安裝「stringr」包後)在我的數據中更改某些列的名稱。列名如下:在字符串的開頭添加字母

> x 
    a b c d 

我需要改變的「c」和「d」與「AA」和「AB」。因此,而不是寫在我的命令全列名,我會用以下結構:

colnames(x[,3:4])<-str_c(colnames(x[,1:2], "A") 

但是,結果顯示「A」結尾的名字不是開始。因此,如何把「A」開頭,以得到如下:

> x 
    a b Aa Ab 
+2

你應該記錄'str_c'來自需要可用並加載的包。這個問題對於剛剛開始使用R並且不理解這個函數實際上只是複製基本函數'paste0'的人不會有幫助。當你去使用'$'函數時,它也會混淆它們(也可能是你),並發現它不尊重以數字開頭的列名稱,除非該名稱被引用。 –

+0

@BonddedDust全部已修復 – athraa

回答

0

如果我理解你的問題,這是顯示「列名」,那麼你應該換你的表達順序,這

colnames(x[,3:4])<-str_c(colnames(x[,1:2], "A") 

應該

colnames(x[,3:4])<-str_c("A", colnames(x[,1:2]) 

注意列名與一家領先的數字將不會與$ functi工作除非名稱被引用。所以「A」在'$'功能下正常工作,但「1」需要引用該名稱。

+0

工作正常。謝謝 – athraa

+0

可以,但這並不意味着這是個好主意。我認爲應該給出適當的警告,因爲'1a'不是一個有效的R名。 –

+0

對不起@艾略特也許我錯過了一些東西,但我不明白這是如何工作的。請參閱http://stackoverflow.com/q/24867333/766828。 – Beasterfield

相關問題