Привет, это работает для вас? Я немного не уверен в том, зачем вам нужен оператор if
, если вы все равно собираетесь его выполнить, так как кажется, что элемент else
не требуется, возможно, вы упустили это для простоты.
Еще один момент, на который следует обратить внимание: duplicated
не выбирает первый из дубликатов в дублированном наборе, поэтому при использовании: regionGroups[!duplicated(regionGroups$location),]
он всегда удаляет все, кроме первого дубликата. Это может быть хорошо для вас, но просто как предупреждение.
Также, если вы воспользуетесь этим подходом: namely: duplicateRegions[1],duplicateRegions[2]
в функции сообщения вы предполагаете, что знаете, сколько у вас будет дубликатов, что было бы не так. Вы можете просто свернуть строку с помощью: paste(as.character(regionGroups$location[dups]), collapse = ", "))
, так что вам не нужно об этом беспокоиться.
if(any(duplicated(regionGroups$location))){
dups <- which(duplicated(regionGroups$location))
dup_regions <- regionGroups$location[dups]
message(" Location is not unique in the table regionGroups. There are ",
length(dups)," duplicated locations, namely: ", paste(as.character(regionGroups$location[dups]), collapse = ", "))
regionGroups <- regionGroups[!duplicated(regionGroups$location),]
}