Как найти уникальные значения в одном фрейме данных и использовать его для фильтрации другого фрейма данных в R - PullRequest
0 голосов
/ 26 февраля 2020

У меня есть два фрейма данных (bmdat1, plots1), которые ссылаются на один и тот же эксперимент. Мне нужно найти уникальные значения из plots1 $ Bucket и использовать их для фильтрации второго фрейма данных по уникальным значениям в plots1 # Bucket.

Вот что я пробовал

bm1dat1 <- filter(bmdat1, bucket == as.vector(unique(plots1$Bucket)))

Это возвращает

Warning messages:
1: In `==.default`(bucket, as.vector(unique(plots1$Bucket))) :
  longer object length is not a multiple of shorter object length
2: In is.na(e1) | is.na(e2) :
  longer object length is not a multiple of shorter object length

Я также пытался

bm1dat1 <- filter(bmdat1, bucket == unique(plots1$Bucket))

, и я получил

Error in Ops.factor(bucket, unique(plots1$Bucket)) : 
  level sets of factors are different

1 Ответ

1 голос
/ 26 февраля 2020

Я думаю, вам нужно использовать %in%, чтобы убедиться, что элементы в наборе слева присутствуют в наборе справа (это то, что вы пытаетесь сделать). Это должно работать, но не знаю, так как у нас нет образца ваших данных для работы.

bm1dat1 <- filter(bmdat1, bucket %in% unique(plots1$Bucket))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...