2017-03-01 59 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

相关问题