Я хотел бы знать, как заменить выбросы на «NA» в R, предполагая, что эти выбросы хранятся в векторе, созданном с помощью boxplot () $ out.
Например:
# create a data frame
df <- data.frame(Group = c("Group1", "Group1", "Group2", "Group2", "Group3", "Group3", "Group4", "Group4", "Group5", "Group5"),
Value1 = c(48, 2, -130, 62, 3, 2, 8, 120, 2, 4),
Value2 = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10))
> df
Group Value1 Value2
1 Group1 48 1
2 Group1 2 2
3 Group2 -130 3
4 Group2 62 4
5 Group3 3 5
6 Group3 2 6
7 Group4 8 7
8 Group4 120 8
9 Group5 2 9
10 Group5 4 10
# plot the data frame
boxplot(df$Value1)
# create a vector of outliers for the numeric factor
outliers <- boxplot(df$Value1, plot = FALSE)$out
# view outliers
outliers
[1] -130 120
Я следовал инструкциям, перечисленным здесь на RPub , чтобы пройти этот путь.Теперь я хотел бы заменить выбросы на «NA» вместо того, чтобы полностью удалить строки, в которых они находятся, чтобы я мог сохранить данные в строках, соответствующих выбросам, из других столбцов, которые не являются выбросами в их соответствующих факторах (то есть 3 и8 в Value2).Я предполагаю, что which
и %in%
придут сюда играть, но я застрял.
Мне нужно знать, как заменить значения на NA, так чточто позже я смогу объединить данные из той же строки в другом столбце (а также данные из разных строк в одном столбце).
Я хотел бы заменить выбросы на NA, чтобы кадр данных выглядел примерно такэто:
> df
Group Value1 Value2
1 Group1 48 1
2 Group1 2 2
3 Group2 NA 3
4 Group2 62 4
5 Group3 3 5
6 Group3 2 6
7 Group4 8 7
8 Group4 NA 8
9 Group5 2 9
10 Group5 4 10
Я относительно новичок в программировании на R.
Спасибо!