R 如何修复不同长度的表

R 如何修复不同长度的表,r,random-forest,r-caret,confusion-matrix,R,Random Forest,R Caret,Confusion Matrix,首先,我是R的新手(不到两个月),第一次在这里问问题,所以如果我没有包括所有需要的,我道歉 我正在尝试使用以下方法从随机林创建混淆矩阵: library (randomForest) library (caret) rfSeg1 <- randomForest(desc ~ Seg1, data= roi_dataSeg1, importance= TRUE, mtry = 4, ntree= 500, trControl = rfSeg1Control, tuneGrid = rfSeg

首先,我是R的新手(不到两个月),第一次在这里问问题,所以如果我没有包括所有需要的,我道歉

我正在尝试使用以下方法从随机林创建混淆矩阵:

library (randomForest)
library (caret)
rfSeg1 <- randomForest(desc ~ Seg1, data= roi_dataSeg1, importance= TRUE, mtry = 4, ntree= 500, trControl = rfSeg1Control, tuneGrid = rfSeg1Grid,metric = "Kappa", maximize = true, na.action=na.exclude)

conftbl <- confusionMatrix(rfSeg1$predicted,roi_dataSeg1$desc)
我跑:

> identical(levels(rfSeg1$predicted),levels(roi_dataSeg1$desc))
[1] TRUE
> identical(length(rfSeg1$predicted),length(roi_dataSeg1$desc))
[1] FALSE
> length(roi_dataSeg1$desc)
[1] 152242
> length(rfSeg1$predicted)
[1] 151567

我在网上查过,试过几次,但都没用。如果您有任何帮助来修复此错误,我们将不胜感激。

您的数据具有不同的长度<代码>R逻辑主要基于向量。因此,如果您尝试使用两个长度不同的向量,则会抛出一个错误。您的问题是排除了
NA
-值。将所有
NA
s分配给向量:
n使用您提供的代码。感谢您的帮助。请注意,我提供的代码非常符合
R
-逻辑。实际上
apply(roi_dataSeg1[,c('Seg1','desc'))],1,函数(x)sum(is.na(x))==0)
如果您想继续使用apply系列,可能更容易理解。但是我只推荐学习
lappy
sapply
,因为它们都非常快。除了
Rcpp
-code之外,它们比
R
中的所有东西都快。我查看了lappy,但遇到了额外的错误,没有继续。我将添加应用代码,因为我必须再运行这个模型4次。我尝试在随机林代码中省略na.action=na.exclude,但它也会出现错误。您建议保留该代码并在以后的工作中使用apply,还是尝试在随机林中消除使用na.action=na.exclude的需要。您的数据具有不同的长度<代码>R
逻辑主要基于向量。因此,如果您尝试使用两个长度不同的向量,则会抛出一个错误。您的问题是排除了
NA
-值。将所有
NA
s分配给向量:
n使用您提供的代码。感谢您的帮助。请注意,我提供的代码非常符合
R
-逻辑。实际上
apply(roi_dataSeg1[,c('Seg1','desc'))],1,函数(x)sum(is.na(x))==0)
如果您想继续使用apply系列,可能更容易理解。但是我只推荐学习
lappy
sapply
,因为它们都非常快。除了
Rcpp
-code之外,它们比
R
中的所有东西都快。我查看了lappy,但遇到了额外的错误,没有继续。我将添加应用代码,因为我必须再运行这个模型4次。我尝试在随机林代码中省略na.action=na.exclude,但它也会出现错误,您建议保留该代码并在以后的工作中使用apply,还是尝试消除在随机林中使用na.action=na.exclude的需要。
> identical(levels(rfSeg1$predicted),levels(roi_dataSeg1$desc))
[1] TRUE
> identical(length(rfSeg1$predicted),length(roi_dataSeg1$desc))
[1] FALSE
> length(roi_dataSeg1$desc)
[1] 152242
> length(rfSeg1$predicted)
[1] 151567