使用列名作为对象进行子集化

时间:2017-03-01 05:25:07

标签: r subset

我正在尝试使用存储在对象中的列名对数据框进行子集化。这可能吗?这是一个例子:

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               

1 个答案:

答案 0 :(得分:0)

您可以通过对列号进行子集化来轻松删除最后一列。

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

您可以通过==6ShortColNameB进行过滤来定义所需的行,然后通过选择数字来定义所需的列(例如,第1列和第2列,A&amp; B)。