2017-03-01 5 views
1

オブジェクトに格納されている列名を使用してデータフレームのサブセットを作成しようとしています。これは可能ですか?ここでの例である:列名をオブジェクトとして使用するサブセット

ReallyLongColNameA <- c(1,2,3,4,5,6) 

ReallyLongColNameB <- c(6,5,4,3,2,1) 

ReallyLongColNameC <- c(7,8,9,10,11,12) 

X <- data.frame(ReallyLongColNameA, ReallyLongColNameB, ReallyLongColNameC) 

は、私は、次のような列名を格納することができる。次いで

ShortColNameB <- names(X[2]) 

及びIは、以下のサブセットができるオブジェクトShortColNameB

に記憶された列名を使用してサブセット:

subX <- X[X$ReallyLongColB == 6,] 

取得する:

ReallyLongColA ReallyLongColB ReallyLongColC 
1    6    7 

しかし、私は、オブジェクト(ShortColNameB)に保存されているカラム名?:

ReallyLongColA ReallyLongColB 
1    6    
+3

サブセット「X [ShortColNameB]」に「[」を使用 – akrun

+0

元の質問を編集して申し訳ありません。 – PradeepLR

+0

コードからエラーが発生したとします。エラーは何を言いますか? –

答えて

0

を使用して、次の所望の出力を望んでいた場合は、簡単に列番号にサブセット化によって、最後の列を削除することができます。

X[X[[ShortColNameB]]==6,c(1,2)]

あなたはShortColNameBため==6にフィルタリングすることによって、あなたは何をしたい行を定義し、あなたが(例えば、第一および第二列、& B)の番号を選択することで、必要な列を定義します。

+0

はい!ありがとう! 私はちょうど同じ結果を得ました: 'X [" [ReallyLongColNameA "] == 6、c(" ReallyLongColNameA "、ShortColNameB)]' – PradeepLR

関連する問題