【问题标题】:How to subset a Data frame column wise using column names? [duplicate]如何使用列名对数据框列进行子集化? [复制]
【发布时间】:2018-02-01 10:25:47
【问题描述】:

我创建了一个名为 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 中删除列 cd

【问题讨论】:

  • z[, c('a', 'b')]
  • 或参数select:subset(z, select = c('a' , 'b'))。顺便说一句,为什么说明末尾有分号? R 不是 C 语言,分号分隔指令,所以当你用它结束一个指令行时,你实际上是把它和最后的 NULL 指令分开。
  • @ycw 已更新 :-)

标签: r dataframe


【解决方案1】:

我们可以使用以下来指定按名称选择哪些列。

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

这也有效。

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

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

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

【讨论】:

  • 保持
  • @Sateesh 您的评论不清楚。它是不可重现的。你想达到什么目标?
  • @Sateesh 这是 R 代码吗?
  • @Sateesh 你还没有回答我的问题。你发表评论的目的是什么?你的代码真的可以在 R 中运行吗?
  • 是的,它有效...
猜你喜欢
  • 2016-01-13
  • 2022-11-18
  • 2016-06-18
  • 1970-01-01
  • 2013-08-15
  • 2016-04-26
  • 2011-11-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多