2013-05-13 173 views
0

嗨我有5個變量,1000個觀察值。所以這5個變量包含很多異常值,如10,11,13,1003,10987,1099,並且它還包含缺失值。所以我想刪除多個異常值。請幫助我....在此先感謝。如何從data.frame中刪除多個異常值R

+1

請幫助我們爲我們提供了一個可重複的例子(即代碼和示例數據)幫你,看http://stackoverflow.com/questions/5963269/how-to-make-a-great-r - 可重現的例子的細節。 – 2013-05-13 05:26:04

+2

您可以從以下其中一個方法開始:'install.packages(「outliers」)'; '庫(離羣值)'。在繼續前進之前,還要考慮使用魯棒的方法,而不是使用異常排斥。如果這是關於異常值的一般性問題,您可能會在[CrossValidated](http://stats.stackexchange.com/)上找到更容易接受的受衆羣體。給你所面臨的問題(及其規模)提供一些線索可能會使某些方法更具吸引力。刪除「NA」可能是一個單獨的問題,您應該已能在本網站上找到答案。 – dardisco 2013-05-13 06:14:42

+0

[如何從數據集中刪除異常值]的可能重複(http://stackoverflow.com/questions/4787332/how-to-remove-outliers-from-a-dataset) – Fluffeh 2014-04-29 09:18:00

回答

3

您可以創建條件來提取相關數據並排除異常值。例如,如果您的數據框被稱爲「DF1」,並要提取中某列的數據:1和5之間,數值(例如列「2」):

condition1 <- df1[,2] >=1 & df1[,2] <=5 
df1 <- df1[condition1,] 

我希望這有助於

0

一些不太依賴於特定值的東西使用分位數。

df <- data.frame(a = c(rep(1, 5), c(5, 7)), b = 1:7) 
keep <- sapply(names(df), function(f) (df[,f] <= quantile(df[,f], probs = c(0.9)))) 
df[apply(keep, 1, all),] 
    a b 
1 1 1 
2 1 2 
3 1 3 
4 1 4 
5 1 5 
6 5 6