2017-03-01 35 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]) 

然後子集使用存儲在對象列名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)]

可以定義要通過在==6ShortColNameB過濾哪些行,你選擇的數字(例如第1和第2列,A & B)定義所需的列。

+0

是的!謝謝! 我剛剛得到了相同的結果: 'X [X [「ReallyLongColNameA」] == 6,c(「ReallyLongColNameA」,ShortColNameB)]' – PradeepLR

相關問題