R 为异常值标记创建新变量
所以,我对给定的数据集进行离群点检测。顺便说一下,这是在R中完成的 通过函数boxplot.stats(x)$out,我可以获得检测异常值的变量的信息。对吗?我得到的观测值被认为是异常值 我想做的是在数据集中创建一个新的列,它可以是二进制的,并为异常值的观测值设置1,为非异常值的观测值设置0 例如:R 为异常值标记创建新变量,r,outliers,R,Outliers,所以,我对给定的数据集进行离群点检测。顺便说一下,这是在R中完成的 通过函数boxplot.stats(x)$out,我可以获得检测异常值的变量的信息。对吗?我得到的观测值被认为是异常值 我想做的是在数据集中创建一个新的列,它可以是二进制的,并为异常值的观测值设置1,为非异常值的观测值设置0 例如: Var1 Var2 asd 111 dsa 15 ssa 10 aas 9 dad 10 dda 95 假设观测值1和6被检测为异常值: Var1 Va
Var1 Var2
asd 111
dsa 15
ssa 10
aas 9
dad 10
dda 95
假设观测值1和6被检测为异常值:
Var1 Var2
asd 111
dda 95
当我使用:
outlier <- boxplot.stats(Var2)$out
这可能真的很容易做到,但我不知道怎么做。有什么想法吗?您可以尝试以下方法:
Var1 Var2 Outlier
asd 111 1
dsa 15 0
ssa 10 0
aas 9 0
dad 10 0
dda 95 1
require(data.table)
data <- fread('Var1 Var2
asd 111
dsa 15
ssa 10
aas 9
dad 10
dda 95 ')
outliers <- fread('Var1 Var2
asd 111
dda 95 ')
data[, Outlier:= ifelse(paste(Var1, Var2) %in% paste(outliers$Var1, outliers$Var2), 1, 0)]
require(data.table)
data说你的data.frame名称是“data”,你在“outlier”中有离群值
然后这样做:
data$outlier = 0
data[which(data$Var2 %in% outlier),"outlier"] <- 1
data$outlier=0
数据[其中数据$Var2%在%outlier中),“outlier”]您可以使用boxplot.stats(Var2)$out中的值的min()
,通过ifelse()
计算新变量
假设数据
是您的数据帧:
data$outliers <- ifelse(data$Var2 < min(boxplot.stats(data$Var2)$out), 0, 1)
data$outliers如果向量中有异常值
outlier <- c(111,90)
异常值
within(df,outlier <- ifelse(df$var1%in%outlier,1,0))
var1 var2 outlier
1 111 asd 1
2 10 csd 0
3 11 pud 0
4 12 dud 0
5 90 kud 1