Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何检测数据帧列中的异常值?在R_R_Dataframe_Outliers - Fatal编程技术网

如何检测数据帧列中的异常值?在R

如何检测数据帧列中的异常值?在R,r,dataframe,outliers,R,Dataframe,Outliers,我有一个数据帧,假设: names<-c("a","a","a","a","a","b","b","b","b","b","c","c","c","c","c","c","c","c") var1<-c(0.942999593,0.935507266,0.973589623,0.969415912,0.95230801,0.935507266,0.888740961,0.91750551,0.944482672,0.945468585,1.457579147,0.922206277,

我有一个数据帧,假设:

names<-c("a","a","a","a","a","b","b","b","b","b","c","c","c","c","c","c","c","c")
var1<-c(0.942999593,0.935507266,0.973589623,0.969415912,0.95230801,0.935507266,0.888740961,0.91750551,0.944482672,0.945468585,1.457579147,0.922206277,0.941511433,0.954724791,0.941014244,0.941511433,0.941511433,1.50511433)
var2<-c(-0.012678088,0.014313763,0.001138275,-0.020568206,0.012987126,0.001217192,0.03360358,0.009758172,0.015066932,-0.037879492,0.020471157,0.010738162,0.010952531,0.019377213,0.027140572,0.031116892,-0.018530676,-8.90E-05)
as.data.frame(cbind(names,var1,var2))->df

names以下是如何为var1执行此操作:

quantiles<-tapply(var1,names,quantile)
minq <- sapply(names, function(x) quantiles[[x]]["25%"])
maxq <- sapply(names, function(x) quantiles[[x]]["75%"])
var1[var1<minq | var1>maxq] <- NA

quantiles您可以通过变量
name
df
上使用
split()
,并检测您的外地人(无论您如何定义)。@JuliánUrbano:怎么可能不呢?她要的是分位数,而不是绝对数字values@CarlWitthoft对..没读对;)我想说的是,但这更干净(注意方便的方法
minq
与级别匹配)。