I managed to find a solution. I noticed that in my data, just before the NAs, the values increase much more slowly, so the algorithm interprets that as a downward parabola. So I removed 3 values before and after each block of NAs, and I'm getting good results. It won't work in every case, but for me, it's working fine.
inertie2sens<- function(data_set,energie){
for (i in 2:nrow(data_set)) {
if (is.na(data_set[i, energie])& !is.na(data_set[i+1, energie])) {
data_set[i+1, energie] =-1
}
}
for (i in nrow(data_set):2) {
if (is.na(data_set[i, energie])& !is.na(data_set[i-1, energie])) {
data_set[i-1, energie] =-1
}
}
for (i in 2:nrow(data_set)) {
if (data_set[i, energie]==-1|is.na(data_set[i, energie])) {
data_set[i, energie] <- NA
}
}
return(data_set)
}