使用 dplyr 根据外部列过滤数据

问题描述 投票:0回答:1

我在 R 中加载了两个数据帧。第一个数据帧包含一列名为 LC 的列,其中包含 56 个唯一观测值,第二个数据帧包含许多列,其中包括包含 500 个观测值的 LC 列。 为简单起见,我使用下面的一些示例数据重新创建了这两个数据框。

# DF 1
LC <-  c("A", "B", "C")
lc.dc <- data.frame(LC)
LC
  LC
1  A
2  B
3  C

# DF 2
DA <-  c(44, 22, 56,20, 34, 45, 22, 55)
LC <-  c("A","C","W", "Z", "B","H","B","A")
da.df <- data.frame(DA, LC)

da.df
  DA LC
1 44  A
2 22  C
3 56  W
4 20  Z
5 34  B
6 45  H
7 22  B
8 55  A

我想使用 DF

LC
中存在的
da.df
列中发现的独特观察结果来过滤存在
LC
的列
lc.dc
。两个 DF 上第
LC
列下的观察结果是相同的。

我执行此操作所采取的步骤包括:

# Convert Unique LC to list
LC.char <- lc.dc$LC
StringLC <- list(LC.char)

# Apply filter using dplyr to fetch a new DF with only the unqique LCs
da.df.filtered <- da.df %>% 
  filter(LC. %in% c(StringLC))

最终结果是一个空的 DF。如何执行此过滤器,以便最终结果是

da.df.filtered
,并且
LC
数据框中仅存在
lc.dc
的唯一值?

r dplyr tidyverse
1个回答
0
投票

这是您要找的吗?

> da.df %>% 
    filter(LC %in% lc.dc$LC)
  DA LC
1 44  A
2 22  C
3 34  B
4 22  B
5 55  A
© www.soinside.com 2019 - 2024. All rights reserved.