我有两个数据帧。第一个是参考df,看起来像这样:
var1 | var2 |
---|---|
a | e |
b | z |
c | f |
d | h |
在基R:中
s <- apply(univ, 1, (x) paste(sort(x), collapse = " "))
r <- paste(ref$var1, ref$var2)
univ[match(r, s), ]
sym1 sym2
1 e a
2 b z
3 f c
4 NA NA
在一个单独的tidyverse友好管道中:
library(stringr)
library(dplyr)
univ %>%
rowwise() %>%
mutate(s = str_c(sort(c_across(everything())), collapse = "")) %>%
pull(s) %>%
match(str_c(ref$var1, ref$var2), .) %>%
univ[., ]
A基本R一行
ref[is.na(do.call(match, lapply(list(unname(ref), unname(univ)), apply, 1, sort, simplify = FALSE))), ] <- NA
给出
> ref
# A tibble: 4 × 2
var1 var2
<chr> <chr>
1 a e
2 b z
3 c f
4 NA NA