如何使用列名明确地对数据框进行子集化?

时间:2017-08-23 17:49:25

标签: r

我创建了一个名为 z 数据框

  a = c(1,1,1);
  b = c(2,2,2);
  c = c(3,3,3);
  d = c(4,4,4);
  z = data.frame(a,b,c,d);

我想从数据框z中删除列c和d

我试过这段代码

p = subset(z , colnames(z) == c('a' , 'b'))

但是我得到了这个结果

a   b   c   d
1   2   3   4   
1   2   3   4 

我应该在此命令中进行哪些更改,以从 z 中删除 c d 列。

1 个答案:

答案 0 :(得分:1)

我们可以使用以下内容指定按名称选择的列。

z[, c("a", "b")]

或者我们可以使用以下内容首先指定要在向量中删除哪些列,然后选择不在该向量中的列。

cols_remove <- c("c", "d")
z[, !(colnames(z) %in% cols_remove)]