【问题标题】:Removing columns from data frame using R [duplicate]使用R从数据框中删除列[重复]
【发布时间】:2014-08-06 09:42:02
【问题描述】:

我正在尝试从数据框中删除列,例如 a,其名称存在于数组中,例如 x。

a <- data.frame( ab = 1:3, ac = 4:6, ad = 7:9, ae = 10:12, af = 13:15, ag=c("a", "b", "c"))

x <- c("ac", "ad", "ae")

在这里,我想从数据框 a 中删除名称存在于数组 x 中的列。

我尝试了以下但徒劳无功:

for (i in 1:length(x))
{
 y <- a[, -grep(x[i],colnames(a))]
}

有人可以在这方面帮助我吗?

问候,

曼迪

【问题讨论】:

    标签: r


    【解决方案1】:

    一个最简单的解决方案是

    newA = a[,setdiff(colnames(a),x)]
    

    【讨论】:

    • 神奇地工作.. 谢谢 vrajs5。
    【解决方案2】:

    如果您想破坏性地从您的data.frame 中删除它们,您可以使用list(NULL),如下所示:

    a
    #   ab ac ad ae af ag
    # 1  1  4  7 10 13  a
    # 2  2  5  8 11 14  b
    # 3  3  6  9 12 15  c
    
    a[x] <- list(NULL)
    a
    #   ab af ag
    # 1  1 13  a
    # 2  2 14  b
    # 3  3 15  c
    

    【讨论】:

      猜你喜欢
      • 2019-11-19
      • 1970-01-01
      • 1970-01-01
      • 2023-03-09
      • 2020-02-16
      • 2012-11-13
      • 2012-11-13
      • 2016-11-02
      相关资源
      最近更新 更多