我有三個變數名為“age”、“lr_scale”和“euRefVoteAfter”,前兩個是數值變數,第三個是二進制變數。我想使用前兩個變數作為兩個特征來對第三個進行分類。但是當我嘗試縮放這兩個變數時遇到了一些問題。錯誤訊息說,Error in seq.default(min(training[, 2]) - 1, max(training[, 2]) 1, by = 0.01) : 'from' must be a finite number 也許我應該在進行縮放以使變數保持有限時添加一些爭論?如果有人能幫我弄清楚,我將不勝感激!
library(caTools)
dplyr::select(bes,"age","lr_scale","euRefVoteAfter")
split <- sample.split(bes$euRefVoteAfter,SplitRatio = 0.75)
training <- subset(bes, split=T)
testing <- subset(bes,split=F)
training[-3] <- scale(training[-3])
testing[-3] <- scale(testing[-3])
library(class)
X1 <- seq(min(training[,1])-1,max(training[,1]) 1,by=0.01)
X2 <- seq(min(training[,2])-1,max(training[,2]) 1,by=0.01)
uj5u.com熱心網友回復:
“訓練”列 1 或 2 中的某些元素可能有缺失值 ( NA),如果我們不洗掉它們,則min或max回傳NA。我們可能需要在計算or 時使用na.rm = TRUEin minormax洗掉這些NA元素minmax
X1 <- seq(min(training[,1], na.rm = TRUE)-1,max(training[,1], na.rm = TRUE) 1,by=0.01)
X2 <- seq(min(training[,2], na.rm = TRUE)-1,max(training[,2], na.rm = TRUE) 1,by=0.01)
作為一個可復制的例子
> start <- c(1, 3, NA)
> end <- c(5, NA, 7)
> seq(min(start), max(end))
Error in seq.default(min(start), max(end)) :
'from' must be a finite number
> min(start)
[1] NA
> max(start)
[1] NA> min(start, na.rm = TRUE)
[1] 1
> max(end, na.rm = TRUE)
[1] 7
如果我們添加na.rm = TRUE(默認情況下是FALSE)
> seq(min(start, na.rm = TRUE), max(end, na.rm = TRUE))
[1] 1 2 3 4 5 6 7
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/334572.html
標籤:r
