在R中生成具有替换的测试和训练数据集

在R中生成具有替换的测试和训练数据集,r,sampling,R,Sampling,我已经镜像了一些代码来执行分析,并且一切都正常工作(我相信)。然而,我试图理解一些与将数据分成40%测试集和60%训练集相关的代码 根据我目前的理解,代码将每一行随机分配到第1组或第2组。随后,分配给1的所有行被拉入训练集中,分配给2的行被拉入测试集中 后来,我意识到带替换的采样并不是我想要的数据分析。虽然在这种情况下,我不确定实际被替换的是什么。目前,我不认为是实际数据本身被替换,而是“1”和“2”的位置持有者。我希望确切地理解这些代码行是如何工作的。根据我的结果,它似乎正在实现我想要的。我需

我已经镜像了一些代码来执行分析,并且一切都正常工作(我相信)。然而,我试图理解一些与将数据分成40%测试集和60%训练集相关的代码

根据我目前的理解,代码将每一行随机分配到第1组或第2组。随后,分配给1的所有行被拉入训练集中,分配给2的行被拉入测试集中

后来,我意识到带替换的采样并不是我想要的数据分析。虽然在这种情况下,我不确定实际被替换的是什么。目前,我不认为是实际数据本身被替换,而是“1”和“2”的位置持有者。我希望确切地理解这些代码行是如何工作的。根据我的结果,它似乎正在实现我想要的。我需要确认数据本身是否被替换

为了测试有问题的行,我创建了一个具有10个唯一值(1到10)的数据帧

如果对数据值本身进行替换采样,我希望在“training1”或“testing2”中看到一些重复的数据。我用10个不同的set.seed编号和数据值运行了这些代码行10次。对我来说,这表明数据本身没有被替换

如果我设置replace=FALSE,则会出现以下错误:

Error in sample.int(x, size, replace, prob) : 
  cannot take a sample larger than the population when 'replace = FALSE'

set.seed(8)
test  <-sample(2, nrow(df), replace = TRUE, prob = c(.6,.4))

training1 <- df[test==1,]
testing2 <- df[test==2,]
sample.int(x,大小,替换,prob)中的
错误:
当“replace=FALSE”时,无法获取大于总体的样本
种子(8)

测试你的取样方式必然会导致不希望的/随机的分割大小,除非观察数量很大,正式称为。要进行更具确定性的分割,请确定列车数据的观测大小/数量,并使用它从
nrow(df)

set.seed(8)
#对于60/40列车/测试拆分
序列indx=样品(x=1:nrow(df),
尺寸=0.6*nrow(df),
replace=FALSE)

训练df除非观测数量巨大,否则你的采样方式必然会导致不希望的/随机的分割大小,正式称为。要进行更具确定性的分割,请确定列车数据的观测大小/数量,并使用它从
nrow(df)

set.seed(8)
#对于60/40列车/测试拆分
序列indx=样品(x=1:nrow(df),
尺寸=0.6*nrow(df),
replace=FALSE)

train_df我建议根据人类的答案拆分代码。因为我在原始代码的基础上进行了大量分析,所以我花了几个小时研究它到底做了什么

原代码:

test  <-sample(2, nrow(df), replace = TRUE, prob = c(.6,.4))

test我建议根据人类的答案拆分代码。因为我在原始代码的基础上进行了大量分析,所以我花了几个小时研究它到底做了什么

原代码:

test  <-sample(2, nrow(df), replace = TRUE, prob = c(.6,.4))

test感谢您的回复,这是一种更好的分割数据的方法感谢您的回复,这是一种更好的分割数据的方法