【问题标题】:How can I remove combinations of groups specified in one data.table from another data.table [R]如何从另一个 data.table [R] 中删除一个 data.table 中指定的组组合
【发布时间】:2019-12-16 18:25:13
【问题描述】:

如何从另一个数据表中删除一个数据表中指定的组组合(最好使用 R 中的 data.table)?

我显然可以循环这个,但我的真实数据是 10,000 多行和许多组,所以我想要一个更有效的方法。

library(data.table)

baseframe <- data.table(
  group_a=c("a_1","a_4","a_3","a_1","a_2","a_1","a_3","a_1"),
  group_a=c("b_5","b_2","b_1","b_5","b_3","b_5","b_3","b_6"),
  group_a=c("c_3","c_1","c_1","c_3","c_1","c_3","c_2","c_3"),
  stringsAsFactors = F
)

removeframe <- data.table(
  group_a = c("a_3","a_1","a_3"),
  group_b = c("b_3","b_5","b_3"),
  group_c = c("c_2","c_3","c_1"),
  stringsAsFactors = F
)

desiredframe <- baseframe[-c(7,1,4,6),]

【问题讨论】:

  • 不建议列名相同

标签: r dataframe filter data.table


【解决方案1】:

更改列名并进行反连接

setnames(removeframe, names(baseframe))
baseframe[!removeframe, on = .(group_a, group_b, group_c)]

【讨论】:

  • 完美。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-08
  • 1970-01-01
  • 2014-04-19
  • 2023-04-02
相关资源
最近更新 更多