gpt4 book ai didi

删除每一列,但其中一些列在 data.table 中

转载 作者:行者123 更新时间:2023-12-04 12:13:02 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





How do I subset column variables in DF1 based on the important variables I got in DF2?

(1 个回答)


3年前关闭。




我不知道它是否已经被问过,因为它似乎应该是一个常见的问题,但是即使我已经尝试过,我也无法找到任何相关信息。在这种情况下很抱歉。

给定 dt <- data.table(col1 = c(1, 2, 3, 4), col2 = c("a", "b", "c", "d"), col3 = c(T, F, T, F)) :

  • 您可以使用 dt[, c("col1", "col2")] 选择多列
  • 您可以使用 dt[, -c("col1", "col2")] 选择除 col1 和 col 2 之外的每一列
  • 您可以使用 dt[, "col1" := NULL] 删除列
  • 您可以使用 dt[, c("col1", "col2") := NULL] 删除多列
  • 您不能使用 dt[, -"col1" := NULL] 删除除 col1 之外的每一列
  • 您也不能使用 dt[, -c("col1", "col2") := NULL] 删除除 col1 和 col2 之外的每一列

  • 我很确定它必须是实现最后两个的任何方式,但对我来说目前这是不可能的。你能给我一些建议吗?我对编程并不陌生,而且我知道一点 R(虽然不是我最擅长的),但我对 data.table 还是很陌生。

    谢谢大家。

    编辑:此问题在以下链接中有答案,尽管该主题并未解决此问题,因此如果您正在寻找此特定疑问,则很难找到:

    How do I subset column variables in DF1 based on the important variables I got in DF2?

    最佳答案

    一种选择是 setdiff分配不需要的列 NULL用于从原始数据集中删除

    dt[, setdiff(names(dt), "col1") := NULL][] 

    关于删除每一列,但其中一些列在 data.table 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51067927/

    25 4 0