如何通过一组已有的名称过滤出行?

问题描述

我有一个类似的小标题

tibble(
x = c("christmas","christmas","car","dog")
y = c("one","two","three","four")
)

然后我有一个标题,例如:

tibble(
x = c("christmas","dog")
)

请注意第一个小节中的两个圣诞节。 我想使用第二个标题栏从第一列输出新列:

tibble(
x = c("christmas","four")
)

解决方法

尝试使用base R并建立索引的%in%解决方案:

#Code
df1[df1$x %in% df2$x,]

输出:

# A tibble: 3 x 2
  x         y    
  <chr>     <chr>
1 christmas one  
2 christmas two  
3 dog       four 

使用了一些数据:

#Data 1
df1 <- structure(list(x = c("christmas","christmas","car","dog"),y = c("one","two","three","four")),row.names = c(NA,-4L),class = c("tbl_df","tbl","data.frame"))

#Data 2
df2 <- structure(list(x = c("christmas","dog")),-2L),"data.frame"))
,

如果您熟悉SQL术语:

library(dplyr)
> df1 %>% inner_join(df2)
Joining,by = "x"
# A tibble: 3 x 2
  x         y    
  <chr>     <chr>
1 christmas one  
2 christmas two  
3 dog       four 
> 

使用基数R

> merge(df1,df2)
          x    y
1 christmas  one
2 christmas  two
3       dog four
>