【问题标题】:How to filter rows in a table? [duplicate]如何过滤表中的行? [复制]
【发布时间】:2019-06-15 07:36:42
【问题描述】:

我目前在一个表中有一组值,我想在另一个更大的表中找到这些值并过滤行,以便只保留包含这些值的行。

我尝试过使用 filter(),但它不断出错,因为它说较长的对象长度不是较短对象长度的倍数。不确定这是否是它不起作用的部分原因,但是如果我单独插入每个值而不是尝试一次过滤整个值集,则过滤器可以工作。

filter(table1, table1$desiredvalues==table2$generalvalues)

我希望输出 table2 中的 table1 中的所有值,但由于某种原因,它只显示了 table1 中的一小部分值。

【问题讨论】:

  • table1[table1$desiredvalues %in% table2$generalvalues, ]
  • library(dplyr); table1 %>% filter(desiredvalues %in% table2$generalvalues)
  • subset(table1 , esiredvalues %in% table2$generalvalues)

标签: r filter


【解决方案1】:

如果你了解 SQL,R 提供了一个很棒的功能来执行 SQL 查询。

library(sqldf)

 ## syntax: sqldf("sql query")

sqldf("select * from table1 inner join table2 on table1.a = table2.a")

【讨论】:

  • 如果列名相同,那么这也有效:sqldf("select * from table1 inner join table2 using(a)")。另请注意,如果帖子中的每一行代码都缩进 4 个空格,那么 SO 会很好地格式化它。
猜你喜欢
  • 1970-01-01
  • 2019-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-07
相关资源
最近更新 更多