R knncat错误在1:knots.vec[num.ctr]

R knncat错误在1:knots.vec[num.ctr],r,knn,standardized,R,Knn,Standardized,如果这是在别处(如果我的问题做得不好,这是我的第一篇帖子),我会道歉。我已经搜索了几天,解决了所有其他错误,但我一直得到这样一个:“错误在1:knots.vec[num.ctr]:NA/NaN参数”。我试图从13个变量中预测一个4组分类类(Q72to73_Opportunity Segments),其中11个是因子,2个是数字。我将数据作为.data.frame读取到R(我事先删除了所有NA行)。我的代码适用于示例Carseats数据,并且在我没有标准化两个数值变量(fldAge和fldSrvc

如果这是在别处(如果我的问题做得不好,这是我的第一篇帖子),我会道歉。我已经搜索了几天,解决了所有其他错误,但我一直得到这样一个:“错误在1:knots.vec[num.ctr]:NA/NaN参数”。我试图从13个变量中预测一个4组分类类(Q72to73_Opportunity Segments),其中11个是因子,2个是数字。我将数据作为.data.frame读取到R(我事先删除了所有NA行)。我的代码适用于示例Carseats数据,并且在我没有标准化两个数值变量(fldAge和fldSrvcYrs)时也适用

以下是适用于汽车座椅数据的代码:

library(dplyr)
library(ISLR)
library(knncat)
fix(Carseats) ## 11 vars: 8 continuous, 3 categorical

## move ShelveLoc factor to front of data
Carseats <- Carseats[,c(7,1:6,8:ncol(Carseats))]

## standardize qual vars and drop original qual vars
Carseats_quantvars <- as.data.frame(scale(Carseats[,2:9]))
Carseats_stdzd <- cbind(Carseats[,-(2:9)], Carseats_quantvars); rm(Carseats_quantvars)

set.seed(1)

train = sample(c(TRUE,FALSE), nrow(Carseats_stdzd), rep=TRUE)

knn.pred <- knncat(Carseats_stdzd[train,], Carseats_stdzd[!train,])
knn.pred  ## gives "Test set misclass rate: 48.09%"
knn.pred$vars  ## gives 2 vars used in knncat: Sales, Price
库(dplyr)
图书馆(ISLR)
图书馆(knncat)
固定(汽车座椅)##11个变量:8个连续变量,3个分类变量
##将ShelveLoc因子移到数据前面

Carseats无法调试实际代码,因此无法真正帮助您。@JHawkins欢迎您。为了更快地回答您的问题,您可能需要退房。欢迎来到Stackoverflow。
library(readr)
library(dplyr)
library(knncat)

my_data1 <- read_csv("my_data1.csv", progress=interactive())  ## main datafile
Parsed with column specification:
cols(
  Q72to73_OpportunitySegments = col_character(),
  fldSrvcYrs = col_double(),
  ENG_STATE = col_character(),
  fldAge = col_integer(),
  fldGender = col_character(),
  jobclas_13G = col_character(),
  UNIONSTATUS = col_character(),
  APPTSTATUS = col_character(),
  EDUGRP_4G = col_character(),
  DIRECTREPORTS = col_character(),
  JOBSHELD_4G = col_character(),
  JOBSAPPLY_4G = col_character(),
  NEWJOB = col_character(),
  Region_4g = col_character()
)
my_data1 <- my_data1 %>% mutate_if(is.character, factor)
my_data1$fldAge <- as.numeric(my_data1$fldAge)  ## b/c came in as integer

my_data1 <- my_data1[,c(1,2,4,3,5:ncol(my_data1))]
my_data1_quantvars <- as.data.frame(scale(my_data1[,2:3]))
my_data1_quantvars <- rename(my_data1_quantvars, stdzd_SrvcYrs=fldSrvcYrs, stdzd_Age=fldAge)
my_data1_stdzd <- cbind(my_data1[,-(2:3)], my_data1_quantvars); rm(my_data1_quantvars)

set.seed(1)

train = sample(c(TRUE,FALSE), nrow(my_data1), rep=TRUE)

knn.pred <- knncat(my_data1_stdzd[train,], my_data1_stdzd[!train,])