首页 > 解决方案 > 数据框错误:参数暗示不同的行数但它们是相同的?

问题描述

我正在使用一个函数来删除异常值,该函数还以表格格式显示异常值和它们所属的类。这个函数在一个较小的可重现脚本上工作得非常好,可以在这里找到已经编写的函数:

https://www.dropbox.com/s/evlc0mqhn6a15k7/Reproduce.R?dl=0

但是,在我包含 846 个 obs 的完整数据集上。我收到此错误:data.frame 中的错误(OutVals,columns,classes):参数暗示不同的行数:55、123

完整数据集 csv:https ://www.dropbox.com/s/y0i7sbrm7sa5ssu/vehiclescsv.csv?dl=0

我对 R 真的很陌生。不知道为什么在我处理较小的相同数据集时会在我的完整数据集上出现这个问题。

任何帮助将不胜感激。

library(reshape2)
library(NbClust)
library(flexclust)
library(factoextra)
library(dplyr)


OutlierRemoval <- function(data, class){
  x <- boxplot(data)
  
  OutVals <- x$out
  
  columns <- x$group
  ind=numeric()
  classes=c()
  if(length(columns) > 0) {
    for(i in 1:length(columns)){
      rows=which(data[,columns[i]]==OutVals[i])
      ind=union(ind,rows)
      classes=c(classes,class[rows])
    }
    dt=data.frame(OutVals, columns, classes)
    print(dt)
    return (list(data[-ind,], class[-ind]))
  }
  return(list(data, class))
}

vehicles <- read.csv("vehiclescsv.csv")
vehData <- vehicles[, -c(1,20)] #Remove sample and class col.
vehClass <- vehicles$Class #Keep vehicleClass

instance1 <- OutlierRemoval(vehData, vehClass)

标签: rdataframe

解决方案


推荐阅读