R SplitRatio参数中的Sample.Split必须为i [0,1]

时间:2016-02-22 22:18:39

标签: r

我收到以下错误:

  

sample.split中的错误:'SplitRatio'参数必须是i [0,1]范围或[1,length(Y)]范围

当我尝试运行以下代码时:

set.seed(1000)
library(caTools)
split = sample.split(letters$isB, SplitRatio = 0.5)

6 个答案:

答案 0 :(得分:7)

语法没有错。您可能错误地拼写了结果变量(字母$ isB)。由于字母$ isB不存在(或未加载),因此会出现错误。

答案 1 :(得分:0)

也许letters$isB长度为0?

答案 2 :(得分:0)

上一个答案(https://stackoverflow.com/a/35706404/6188234

“也许字母$ isB长度是0?”

有更多上下文的意义。根据我对另一个MOOC的经验,我收到了这个错误,来到SO寻找答案。

参考Sample.split in R - SplitRatio parameter

我注意到,如果您尝试拆分的变量不存在,则会生成错误 - 因为输入错误。因此错误消息误导编码器查看SplitRatio常量,而不是您要拆分的变量。

split = sample.split(字母$ THISDOESNOTEXIST,SplitRatio = 0.5)

在我的情况下,这个拼写错误是变量名称的camelCase,因此难以查看语法错误。修复该类型可以清除此错误。

我希望这适合你。

答案 3 :(得分:0)

我有完全相同的问题,我确信语法和变量没有任何问题。 更有趣的是,如果我在Rmarkdown上手动运行相关的块,代码就可以工作,但是当我从上到下运行整个markdown时,它会返回错误。

答案 4 :(得分:0)

我收到的错误类似于上面列出的错误。我意识到我忘记在下面列出的代码中更改我的变量

split = sample.split(dataset$Profit, 

从利润到销售的单位(在我的实际数据集中变量)与利润,这是来自另一个项目的代码。希望这会有所帮助 - 我在下面列出了我的其余代码和错误。

> library(caTools)
> set.seed(123)
> split = sample.split(dataset$Profit, SplitRatio = .8)
Error in sample.split(dataset$Profit, SplitRatio = 0.8) : 
  Error in sample.split: 'SplitRatio' parameter has to be i [0, 1] range or [1, length(Y)] range
> training_set = subset(dataset, split == TRUE)
Error in split == TRUE : 
  comparison (1) is possible only for atomic and list types
> test_set = subset(dataset, split == FALSE)
Error in split == FALSE : 
  comparison (1) is possible only for atomic and list types

答案 5 :(得分:0)

set.seed(1000) library(caTools) split = sample.split(letters$isB, SplitRatio = 0.5)

isB应该是因变量的标签,在数据集中查找该名称。

Here,您可以找到引发此错误的原因。