С dplyr
вы можете сделать:
df %>%
filter_at(vars(starts_with("var")), any_vars(. == "OTU0016"))
var1 var2 corr
1 OTU0001 OTU0016 0.652
2 OTU0004 OTU0016 0.630
3 OTU0014 OTU0016 0.465
4 OTU0015 OTU0016 0.884
Или с base R
:
df[apply(df[, 1:2], 1, function(x) any(grepl("OTU0016", x, fixed = TRUE))), ]
var1 var2 corr
7 OTU0001 OTU0016 0.652
8 OTU0004 OTU0016 0.630
9 OTU0014 OTU0016 0.465
10 OTU0015 OTU0016 0.884
Или:
df[apply(df[, -grepl("corr", names(df), fixed = TRUE)], 1, function(x) any(grepl("OTU0016", x, fixed = TRUE))), ]
Или:
df[apply(df[, -grepl("corr", names(df), fixed = TRUE)], 1, function(x) any(match(x, "OTU0016", nomatch = 0))), ]