【问题标题】:Delete column in data.table based on condition (row wise)根据条件删除 data.table 中的列(逐行)
【发布时间】:2021-06-01 22:26:06
【问题描述】:

如何从特定行中删除满足特定条件的每一列? 在我的情况下,删除第一行中带有=="-" 的每一列。

我想完全在 [ ] 内部完成,而不复制内存中的数据,并且尽可能避免使用外部函数。

mtcars[1,c(2,4,6)] <- "-"
dt <- data.table(mtcars)

没用:

temp[,.SDcols := function(x) x[1]!="-"]
temp[,.SD:= .SDcols = (function(x) x[1]!="-")]

有效但复制数据:

temp[ , .SD, .SDcols = function(x) x[1]!="-"]

关于这个主题还有其他帖子,但我的问题不同,因为这些帖子都没有显示如何在 [ ] 中查找条件之前进行子集化

delete column in data.table in R based on condition

Removing multiple columns from R data.table with parameter for columns to remove

【问题讨论】:

    标签: r data.table


    【解决方案1】:

    您可以通过引用删除第一行中包含"-" 的列,如下所示:

    dt[, which(c(dt[1]=="-")) := NULL]
    

    【讨论】:

      【解决方案2】:

      这个怎么样?

       dt[,dt[1]!="-", with=FALSE]
      

      【讨论】:

        猜你喜欢
        • 2021-03-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-03
        相关资源
        最近更新 更多