子集特定列

时间:2016-03-01 11:23:30

标签: r

我的示例数据是

DF
x.c  y.ce  z.ac 

这些都是数字列

我试图单独提取列c。 如果我使用grep或grepl,它会占用所有列,因为它们都包含c

你能帮我解决一个问题吗? 谢谢。

1 个答案:

答案 0 :(得分:1)

根据我上面的评论,如果您希望获得结束的名称与c,您希望通过

获取这些名称
names(DF)[grepl("c$", names(DF))]

然后通过

获取值
DF[, names(DF)[grepl("c$", names(DF))]]

(或只是TRUE / FALSE索引:

DF[, grepl("c$", names(DF))]

更新

OP已经改变了原来的问题,所以答案现在只是

DF[, "c"]

提取c

> DF <- data.frame(c=c(1,2,3), ce=c(2,3,4), ac=c(3,4,5))
> DF
  c ce ac
1 1  2  3
2 2  3  4
3 3  4  5
> DF[,"c"]
[1] 1 2 3

更新2: OP再次改变了原来的问题,现在的答案是:

 DF <- data.frame(x.c=c(1,2,3), y.ce=c(2,3,4), z.ac=c(3,4,5))
> DF
  x.c y.ce z.ac
1   1    2    3
2   2    3    4
3   3    4    5
> DF[, names(DF)[grepl("\\.c$", names(DF))]]
[1] 1 2 3