【问题标题】:r delete with a condition data.table [closed]r删除条件data.table [关闭]
【发布时间】:2020-09-14 10:08:19
【问题描述】:

我有一个 data.table,我想删除在变量“switch_f”上具有相同值的“id”。

我希望这个退出

【问题讨论】:

  • 投反对票,因为数据应该以可复制的形式而不是图像共享。
  • 好的,抱歉,下一篇文章我会做一个可重现的例子

标签: r data.table


【解决方案1】:
DT[, if (uniqueN(Switch_f) == 1L) NULL else .SD, by = id]
# There are many other options, including:
DT[DT[, if (uniqueN(Switch_f) > 1L) .I, by = id]$V1]
DT[DT[, uniqueN(Switch_f) > 1L, by = id][(V1), !"V1"], on = "id"]

可重复的数据(请下次提供):

DT <- data.table(
  id = rep(1L:7L, c(3L, 4L, 3L, 3L, 1L, 2L, 2L)),
  Switch_f = c(0L, 0L, 1L, 0L, 0L, 1L, 1L, 0L, 1L, 1L, 0L, 0L, 0L, 1L, 1L, 1L, 0L, 1L),
  sex = rep(c(1L, 2L, 1L, 2L), c(7L, 3L, 3L, 5L))
)

【讨论】:

    【解决方案2】:

    也许你可以试试subset + ave 如下所示

    subset(df,as.logical(ave(Switch_f,id,FUN = function(x) length(unique(x))>1)))
    

    保留组有多个唯一的Switch_f

    【讨论】:

      猜你喜欢
      • 2014-05-04
      • 2021-03-08
      • 2021-03-06
      • 2016-04-06
      • 2017-10-21
      • 1970-01-01
      • 2020-09-05
      • 2015-04-29
      • 1970-01-01
      相关资源
      最近更新 更多