是否有一個已知函數用於執行此操作? 編號喜歡將此應用於我的數字數據框中的某些列,以便將異常值替換爲列中值。數據框中的列中值與列中的異常值
1
A
回答
1
看看這個例子。一種方法是如下:
假設你正在使用的interquartile range來識別異常值,你可以這樣做:
示例數據:
#the first 3 rows are outliers here in both columns
set.seed(100)
mydf <- data.frame(a = c(1000,1000,1000,runif(10)), b= c(1000,1000,1000,runif(10)))
我使用下面的函數基本上轉換每個列的異常值(異常值是小於25%四分位數減去IQR的1.5倍或大於75%四分位數加上1.5倍IQR的任何一點):
outlier <- function(x) {
x[x < quantile(x,0.25) - 1.5 * IQR(x) | x > quantile(x,0.75) + 1.5 * IQR(x)] <- median(x)
x
}
輸出(使用lapply
適用於每一列):
> mydf[] <- lapply(mydf, outlier)
> mydf
a b
1 0.48377074 0.6690217
2 0.48377074 0.6690217
3 0.48377074 0.6690217
4 0.30776611 0.6249965
5 0.25767250 0.8821655
6 0.55232243 0.2803538
7 0.05638315 0.3984879
8 0.46854928 0.7625511
9 0.48377074 0.6690217
10 0.81240262 0.2046122
11 0.37032054 0.3575249
12 0.54655860 0.3594751
13 0.17026205 0.6902905
正如你所看到的異常值(1000的值在原data.frame即兩列前三排)已換成中位數。
+0
謝謝這是我需要.. – PaulBeales
+0
Np,很高興我可以幫助:) – LyzandeR
相關問題
- 1. 數據框列表中列的中值的平均值
- 2. 迭代數據框中的列,將每個值與另一個數據框中另一列中的值匹配
- 3. gsub列數據框中的值
- 4. 從Pandas數據框中的其他列中分配列的值
- 5. 使用NA替換數據框中所有列的所有異常值
- 6. WPF:使用與數據表綁定的列表框中的值
- 7. 根據spark數據框中另一列的值查找列的最大值?
- 8. 數據框中列鍵值字典對
- 9. 蟒蛇和熊貓:集數據框與值列表中的
- 10. 在Excel中匹配數據列並將列中的值與值一起返回
- 11. 計算列中的數值差異
- 12. pyspark數據框中的異常值檢測
- 13. 從數據框中刪除異常值的功能
- 14. 根據SQL2005中列A中的值設置列B中的值?
- 15. 使用列值的新數據框中的子集數據幀
- 16. 匹配變量值到列以檢索數據框中的值
- 17. PySpark:從列值中命名一個新的數據框列
- 18. 使用數據框中的值指定read_csv中的列類型
- 19. 熊貓:返回數據框,其中一列的值大於另一列的值
- 20. 將數據框與列常用列名相結合,但在列中使用不同的值
- 21. asp.net mvc2根據列表框值從數據庫中選擇值
- 22. 與值R中的列表
- 23. 在R數據框的每個組(C列)內給出列B中的最大值,提取列A中的值?
- 24. SQL Server中一行中列的平均值除以零異常
- 25. 從不同列中的值中篩選數據框熊貓
- 26. 如何從熊貓數據框中的列表中刪除值?
- 27. 從數據框中的列中提取字典值
- 28. 在R中設置數據框中行子集的列值
- 29. 根據現有列中的值插入新列中的值
- 30. 根據另一個數據框中的列填充數據幀中的空值
嘗試輸入'?replace'和'?median'。 – Frank