I am currently evaluating normalization methods on proteomics data. As proteomics data are often affected by a high extent of missingness, filtering of proteins with too many missing values is applied (imputation is not wanted). However, some missing values will still be in the data, as for instance in here: 
I am evaluating many normalization methods and performing cyclic loess using limma::normalizeCyclicLoess(as.matrix(dt), method="pairs")
However, what I noticed now that NA values become additive, i.e. one NA value in a row prior normalization, gives NA values for this protein over all samples. 
After having checked the source code, actually this also makes sense to me. Here again the function:
if (method == "pairs") {
for (k in 1:iterations) for (i in 1:(n - 1)) for (j in (i +
1):n) {
m <- x[, j] - x[, i]
a <- 0.5 * (x[, j] + x[, i])
f <- loessFit(m, a, weights = weights, span = span)$fitted
x[, i] <- x[, i] + f/2
x[, j] <- x[, j] - f/2
}
}
Can anyone help me how to normalize incomplete proteomics data with cyclic loess?