Выполнить операцию с полными обращениями без изменения исходных векторов

#r

#r

Вопрос:

Я хотел бы вычислить рангово-бисериальную корреляцию. Но (только кажется), что пакет не может так хорошо обрабатывать пропущенные значения. В нем нет встроенной функции «na.omit = TRUE». Я мог бы удалить пропуски во фрейме данных, но это было бы непросто с множеством различных вычислений.

 n <- 500
df <- data.frame(id = seq (1:n),
                 ord = sample(c(0:3), n, rep = TRUE), 
                 sex = sample(c("m", "f"), n, rep = TRUE, prob = c(0.55, 0.45))
)
  
df <- as.data.frame(apply (df, 2, function(x) {x[sample( c(1:n), floor(n/10))] <- NA; x} ))

library(rcompanion)
wilcoxonRG(x = df$ord, g = df$sex, verbose = T)
  

Я представляю себе что-то глупо простое, например «complete.cases(wilcoxonRG(x = df $ ord, g = df $ sex, verbose = T)). Вероятно, это не так сложно, но я смог найти только полные манипуляции с фреймами данных. Заранее спасибо!

Комментарии:

1. with(df[complete.cases(df),], wilcoxonRG(x = ord, g = sex, verbose = TRUE)) ?

2. Или with(na.omit(df), ...) .

3. Спасибо, работает хорошо! Нужно помнить «with()».

4. with и within очень полезны, предоставляя операции, подобные NSE, для «обычных» функций.