我想根据值是否在向量中对值进行分类。我尝试了似乎所有的方法,但它仍然不起作用。
orig_vector <- c(0.00632, 0.02731, 0.02729, 0.03237, 0.06905, 0.02985, 0.08829, 0.14455, 0.21124, 0.17004)
cat_vector <- c(0.00632, 0.02731, 0.02729, 0.03237)
for(j in 1:length(orig_vector)){
ifelse(orig_vector[j] %in% cat_vector[1:2], orig_vector[j] <- 'Extreme',
ifelse(orig_vector[j] %in% cat_vector[3:length(cat_vector)], orig_vector[j] <- 'Reasonable',
orig_vector[j] <- 'Non-Outlier'))
}
}我希望输出是
c("Extreme", "Extreme", "Reasonable", "Reasonable", "Non-Outlier", "Non-Outlier", "Non-Outlier", "Non-Outlier", "Non-Outlier")挑战在于这个函数只返回
c("Non-Outlier", "Non-Outlier", "Non-Outlier", "Non-Outlier", "Non-Outlier", "Non-Outlier", "Non-Outlier", "Non-Outlier", "Non-Outlier", "Non-Outlier")我在使用过滤器捕获这些值时遇到了问题,我不知道如何比较一个值是否等于向量中的一个值。
发布于 2019-01-09 10:24:26
您可以在此处使用sapply:
output <- sapply(orig_vector, function(x){
if(x %in% cat_vector[1:2]) return('Extreme')
else if (x %in% cat_vector[3:length(cat_vector)]) return('Reasonable')
else return('Non-Outlier')
})
print(output)
[1] "Extreme" "Extreme" "Reasonable" "Reasonable" "Non-Outlier" "Non-Outlier"
[7] "Non-Outlier" "Non-Outlier" "Non-Outlier" "Non-Outlier"https://stackoverflow.com/questions/54100823
复制相似问题