我试图将一个训练集分割成两组:训练集和验证集。它确实将其分割了,但出于某种原因,它删除了验证集中的32行,并将NA放在那里。在原始数据集中没有NA。
这就是代码。
set.seed(123)
sample <- sample.int(n = nrow(traindata), size = floor(.2*nrow(traindata)), replace = F)
traindata <- traindata[-sample, ] #creating training set
validatiedata <- traindata[sample, ] #creating validation set
print(traindata)
head(traindata)
tail(traindata)
print(validatiedata)
head(validatiedata)
tail(validatiedata)
我试过用不同的代码来分割数据。
library(caTools)
set.seed(123)
split = sample.split(traindata, SplitRatio = 0.8)
# Create training and testing sets
train = subset(traindata, split == TRUE)
test = subset(traindata, split == FALSE)
dim(train); dim(test)
head(traindata)
tail(traindata)
head(validatiedata)
tail(validatiedata)
第二段代码也不行 它把数据分割错了,还在验证集中创建了NA。
有什么建议吗?
你创建的数据帧 traindata
和 validatiedata
顺序不对。
traindata <- traindata[-sample, ] # Removes rows from traindata
validatiedata <- traindata[sample, ] # Tries to extract rows that no longer exists, resulting in NA:s
如果你改变顺序,你就不会有这个问题。
validatiedata <- traindata[sample, ]
traindata <- traindata[-sample, ]