2017-08-10 8 views
4

以下は私の質問がどこから来ているのか理解したい場合のデータセットに関する背景情報です(私は実際にデータセットをマージしたいので、もっと効率的な方法を知っているかもしれません)。Rの複数の変数名の最後の文字のみを置き換える方法は?

質問: Rの変数名の最後の文字だけを何も(複数の変数の場合)置き換える方法はありますか?

sub()関数を使用しようとしましたが、うまくいきましたが、いくつかの変数名には複数回変更する文字(str2tt2など)が含まれています。私は空のスペースで最後の '2'を取り除くか置き換えたいだけです。

例: 私はこれらの変数名とデータセットを持っている、と私は唯一の最後の '_2' 文字を削除したいと、私はこれを試してみました:

h_2ello_2 how_2 are_2 you_2 
1   1  3  5  7 
2   2  4  6  8 

names(data) <- sub('_2', '', names(data)) 

出力:

hello_2 how are you 
1  1  3 5 7 
2  2  4 6 8 

今度は、最後の '_2'を削除して、hello_2の代わりに 'h_2ello'を返すようにします。

どのように知っていますか? ありがとうございます!


背景情報:

私は現在、3個の別々のものからデータセットを構築しようとしています。これらの3つの異なるものは、3つの異なる測定モーメントからのものであり、したがって、それらの変数名は、それぞれの変数名の後の文字を測定モーメントに対応させて含む。すなわち、測定瞬間2では、変数名はscoreA2、scoreB2、scoreC2、測定瞬間3では変数名はscoreA3、scoreB3、scoreC3である。

これらのファイルを結合したいので、私はデータセットで '2'と '3'を削除してから、マージしてみんなが同じ瞬間に測定されたように見せます。

ただし、スコア名には文字2と3も含まれています。例えば:str2tt2はStroopカード2の合計時間測定の瞬間2の変数名です。私は最後の '2'を削除したいだけですが、sub()関数を使うときは最初のものだけを削除します。それはsubあるとして私たちは、元のデータセットの列名OPのコードで

names(data) <- sub('_2$', '', names(data)) 
names(data) 
#[1] "h_2ello" "how"  "are"  "you" 

上の文字列の終わりを示唆メタ文字$を使用する必要が

答えて

0

_2h_2ello_2に最初のインスタンスと一致しますh_2から_2を削除します。代わりに、位置を文字列の最後の文字に指定する必要があります。

関連する問題