Итак, у меня есть фрейм данных с названиями видов и сортами AE, приписанными каждому, и иногда встречаются случаи одного и того же вида с разными сортами, но я хочу следующее: если у вида есть хотя бы один случай с классом X, то все другие экземпляры этого вида также должны быть класса X. Это мой фрейм данных:
species | grade |
-----------------------------------
Tilapia guineensis | B |
Tilapia guineensis | E |
Tilapia zillii | A |
Fundulus rubrifrons | A |
Eutrigla gurnardus | D |
Sprattus sprattus | A |
Gadus morhua | E |
Gadus morhua | B |
Tilapia zillii | C |
Gadus morhua | B |
Eutrigla gurnardus | C |
До сих пор я попробовал следующее для класса E в качестве примера:
df<-df%>% left_join(df%>%
group_by(species) %>%
summarize(sum_e = sum(grade=='E')),by='species') %>%
mutate(grade = ifelse(sum_e>0,"E",grade))
Но я получаю ошибку:
Error: `by` can't contain join column `species` which is missing from RHS
Вывод, который я хочу получить, в основном такой:
species | grade |
-----------------------------------
Tilapia guineensis | E |
Tilapia guineensis | E |
Tilapia zillii | C |
Fundulus rubrifrons | A |
Eutrigla gurnardus | D |
Sprattus sprattus | A |
Gadus morhua | E |
Gadus morhua | E |
Tilapia zillii | C |
Gadus morhua | B |
Eutrigla gurnardus | D |