#r #function
Вопрос:
Я определил критерии для выявления выбросов в моем фрейме данных (если доверительный интервал (CI) не перекрывается с CI моей модели).
Я попытался создать функцию, которая проверяет мой фрейм данных, верно ли это в любом случае:
is.outlier lt;- function(cilbr, ciubr, cilb.model, ciub.model) { for (x in 1:length(cilbr)) { if (cilbr gt; ciub.model || ciubr lt; cilb.model) { print(TRUE) } else { print(FALSE) } } }
cilbr = нижняя граница CI данных, ciubr = верхняя граница CI данных
Когда я теперь применяю его к своему фрейму данных, «FALSE» возвращается для всех строк (кроме того, некоторые строки определенно являются выбросами).:
ma1$outlier lt;- is.outlier(ma1$cilbr, ma1$ciubr, 0.2484, 0.4195) [1] FALSE [1] FALSE [1] FALSE [1] FALSE [1] FALSE [1] FALSE [1] FALSE ...
По-видимому, для этого требуется только первый случай моих данных, а не все значения
Есть какие-нибудь предложения, как я могу это исправить?
Примеры данных:
author year n r r_var cilbr ciubr lt;chrgt; lt;dblgt; lt;dblgt; lt;dblgt; lt;dblgt; lt;dblgt; lt;dblgt; 1 Baker 2011 84 0.171 0.0114 -0.0451 0.372 2 Schmidt 2020 182 0.32 0.00445 0.183 0.445 3 Meyer 2010 250 0.096 0.00394 -0.0284 0.217 4 Miller 1990 25 0.28 0.0354 -0.129 0.608
Комментарии:
1. Некоторые примеры данных помогут