R суетливый, когда дело доходит до уровней факторов. Вы должны заменить уровень (ы) на новый.
df <- data.frame(id=1:3, VariantType=c("A","","B"))
str(df)
#'data.frame': 3 obs. of 2 variables:
# $ id : int 1 2 3
# $ VariantType: Factor w/ 3 levels "","A","B": 2 1 3
df
# id VariantType
#1 1 A
#2 2
#3 3 B
levels(df$VariantType)
#[1] "" "A" "B"
Теперь замените "" на "Неизвестно". Вы можете сделать это вручную, используя индекс:
levels(df$VariantType)[1] <- "Unknown"
или используя логическое выражение:
levels(df$VariantType)[levels(df$VariantType)==""] <- "Unknown"
df
# id VariantType
#1 1 A
#2 2 Unknown
#3 3 B
levels(df$VariantType)
#[1] "Unknown" "A" "B"