Эффективный способ достижения sh того же в R - PullRequest
0 голосов
/ 21 апреля 2020

Я хочу удалить точки данных выбросов в кластерах после того, как k означает кластеризацию и использую этот способ для R: -

1.) Постройте график: -

plot(sort(df[[1]]$var))
plot(sort(df[[2]]$var))

2.) Из графика см. Посторонние (в моем случае крайние) точки данных.

rownames(df[[1]])<-1:nrow(df[[1]])
rownames(df[[2]])<-1:nrow(df[[2]])

3.) Go до view(df[[1]]), view(df[[2]]) сортировка var в порядке убывания и запишите номера строк, которые являются точками данных выбросов, и удалите эти строки из df[[1]], df[[2]]

df[[1]]<-df[[1]][-c(200,320,216),]
df[[2]]<-df[[2]][-c(7000,1200,2320),]

df - это список с 3 элементами, df[[1]] доступ к первому элемент / кластер

Есть ли другой простой и эффективный способ добиться того же?

1 Ответ

0 голосов
/ 21 апреля 2020

Вам необходимо включить короткий воспроизводимый пример, показывающий, что вы хотите и что вы пробовали. Тем не менее, следующее может дать вам несколько советов, если я угадываю, что вы хотите правильно. Обратите внимание, что вы можете получить минимальные / максимальные значения среза из КИ или других средств.

a <- 1:40
b <- a[a %in% 4:35] # Define outliers as <= 4 or >= 35
b
length(b) # Note there are no NAs using this approach

В основном срезайте выбросы при соответствующих значениях выбросов и нанесите на график оставшиеся элементы.

...