У меня есть этот первый кадр данных (названный "fish_12") с 74610 строками, в каждом ряду есть данные об образцах морской рыбы. Первый столбец - это название вида, к которому принадлежит каждый образец (во всем фрейме данных много образцов, принадлежащих к одному и тому же виду), второй столбец, BIN, является своего рода идентификационным номером для каждого вида, а затем у меня есть имя сборщика каждого образца, страна, из которой он был получен, и пустой столбец, который я хочу заполнить.
species | BIN | collectors | country | grade
--------------------------------------------------------------------------
Tilapia guineensis |BOLD:AAL5979 | C.D. Nwani | Nigeria | NA
Tilapia zillii |BOLD:AAB9042 | C.D. Nwani | Nigeria | NA
Fundulus rubrifrons |BOLD:AAI7245 | John Donavan | United States| NA
Eutrigla gurnardus |BOLD:AAC0262 |Hermann Neumann | North Sea | NA
Sprattus sprattus |BOLD:AAE9187 |Hermann Neumann | North Sea | NA
Gadus morhua |BOLD:ACF1143 |Hermann Neumann | North Sea | NA
Tilapia zillii |BOLD:AAB9042 | C.D. Nwani | Nigeria | NA
Gadus morhua |BOLD:ACF1169 | Angela Cicia | United States| NA
Спускаясь по строкам, в основном, у вида может быть только один BIN или более одного, и один и тот же BIN иногда может быть назначен разным видам.
Итак, я пытаюсь заполнить столбец, в котором присваивается оценка «Е» каждому виду, которому присвоен БИН, который сам по себе присвоен более чем 1 разным видам; оценка "D" для каждого вида, который имеет менее 3 вхождений в этом первом кадре данных; «C» - видам, которым назначено более 1 разных BIN, но в то же время каждый из BIN, назначенных этому конкретному виду, назначается только одному виду; «B» для видов, которым присвоен только один ОГРН, но каждый из его образцов собирается от одного сборщика и в одной и той же стране; и, наконец, буква «А» для каждого вида, которому присвоен только один ОГРН, но есть образцы, собранные из более чем одного сборщика или из более чем одной страны.
Итак, я создал новый фрейм данных, включающий столбец с указанием количества BIN для каждого вида (bin_per_species); еще один с колонкой, показывающей, сколько видов присутствует для каждого номера БИН (видов_пер_бина); еще один с колонкой, показывающей, сколько коллекционеров существует для каждого вида (collectors_per_species); и, наконец, один с колонкой о том, сколько стран присвоено каждому виду (country_per_species)
#creating the other dataframe from the first one
fish_13=fish_12%>%
group_by(species) %>%
summarise(occurrence = n_distinct(BIN),
BIN = str_c(unique(BIN), collapse = ","))
names(fish_13)=c("species","bin_per_species","BIN")
View(fish_13)
fish_14=fish_12%>%
group_by(BIN) %>%
summarise(occurrence = n_distinct(species),
species = str_c(unique(species), collapse = ","))
names(fish_14)=c("BIN","species_per_bin","species")
View(fish_14)
length(unique(fish_14$BIN))
fish_15=fish_12%>%
group_by(species) %>%
summarise(occurrence = n_distinct(collectors),
collectors = str_c(unique(collectors), collapse = ","))
names(fish_15)=c("species","collector_per_species","collectors")
View(fish_15)
fish_16=fish_12%>%
group_by(species) %>%
summarise(occurrence = n_distinct(country),
country = str_c(unique(country), collapse = ","))
names(fish_16)=c("species","countries_per_species","country")
View(fish_16)
Итак, здесь я попытался сформировать условия с различными функциями if / else, но у меня возникли проблемы, заключающиеся в том, что кадры данных имеют разную длину, и я не могу назначить все оценки от A до E одновременно, потому что даже когда мне удается избежать ошибок, некоторые из них преобразуются обратно в NA. Вывод, который я хотел получить, - это, по сути, первый кадр данных, каждому экземпляру присвоена оценка.
Извините, если я запутываю и неправильно представляю данные, но я новичок в этом сообществе и пытаюсь поправиться. Заранее спасибо за любой ответ