Is this the kind of thing you want?
library(ggplot2)
library(dplyr)
DF <- read.csv("~/R/Play/Dummy.csv", sep = " ")
Quants <- DF %>% group_by(Gruppe) %>%
summarize(Q05 = quantile(Eiweiss, probs = 0.05),
Q95 = quantile(Eiweiss, probs = 0.95))
DF <- inner_join(DF, Quants, by = "Gruppe")
DFlabels <- DF %>% filter(Eiweiss <= Q05 | Eiweiss >= Q95)
DFpoints <- DF %>% filter(Eiweiss > Q05, Eiweiss < Q95)
ggplot(DF, aes(Fett, Eiweiss, color = Gruppe, label = Eiweiss))+
geom_violin() +
geom_point(data = DFpoints) +
geom_label(data = DFlabels)
#> Warning: position_dodge requires non-overlapping x intervals

Created on 2020-06-18 by the reprex package (v0.3.0)