2014-11-25 2 views
2

Я довольно новичок с R и R пакетами в целом. Я хотел бы спросить вас, есть ли четкое решение проблемы ниже. Я импортировал мои данные в формате .csv, как вы можете видеть на рисункеКак удалить/устранить выбросы, используя метод IQR

https://dl.dropboxusercontent.com/u/23801982/1234.jpg

Они сгруппированы данные по юридическим лицам год месяц и около 4-х параметров, как вы можете видеть в следующих столбцах. Если также создают полевой график для, например, Absrtactions колонки следующим образом:

https://dl.dropboxusercontent.com/u/23801982/1234566.jpg

Теперь я пытаюсь определить выбросы, которые я сделал с командой boxplot.stats.

Но я не знаю, как устранить исключить выбросы из результатов и экспортировать их в новый файл (например, .txt или .csv) из-за сгруппированных данных. Я также видел ручной внешний способ расчета с помощью IQR, но я думаю, что он не подходит для требуемого экспортируемого набора данных.

Код я использовал до сих пор:

rm(list = ls()) 
library("gdata") 

s1 <- read.csv("C:\\Users\\G\\Documents\\R\\Projects\\20141125.csv", header = T) 

boxplot(s1$Abstractions ~ s1$Entity, col="green", srt=45) 

boxplot.stats(s1$Abstractions) 

Спасибо

+1

Добро пожаловать в StackOverflow! Пожалуйста, прочитайте информацию о том, как создать [минимальный воспроизводимый пример] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example/5963610#5963610). Это облегчит вам помощь другим людям. – Jaap

+0

Возможный дубликат [Удаление излишков в R] (http://stackoverflow.com/questions/15160485/removing-outliers-easily-in-r) – Jaap

ответ

4

Вы смотрите на правой функции boxplot.stats

посмотреть на то, что функция R вы можете использовать

?functionName

поэтому попробуйте

?boxplot.stats

, и вы увидите, что он вернется выбросам значения в слоте взывать

Value: 

    List with named components as follows: 

    stats: a vector of length 5, containing the extreme of the lower 
      whisker, the lower ‘hinge’, the median, the upper ‘hinge’ and 
      the extreme of the upper whisker. 

     n: the number of non-‘NA’ observations in the sample. 

    conf: the lower and upper extremes of the ‘notch’ (‘if(do.conf)’). 
      See the details. 

    out: the values of any data points which lie beyond the extremes 
      of the whiskers (‘if(do.out)’). 
    Note that ‘$stats’ and ‘$conf’ are sorted in _in_creasing order, 
    unlike S, and that ‘$n’ and ‘$out’ include any ‘+- Inf’ values. 

так, чтобы удалить выбросы вы можете сделать что-то вроде этого

outliersValue<- boxplot.stats(x)$out 
x[!x %in% outliersValue] 

где x - ваши данные.

Оператор %in% проверяет, существует ли значение в другом значении. Добавление ! является оператором отрицания, который в этом случае будет полностью изменить логику, возвращая True для x, которые не найдены в outliersValue

Я надеюсь, вы найдете это полезным. Happy R-ing

Смежные вопросы