Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么我会得到一个';断点不唯一';我的R代码中有错误吗?_R_Cut_Mutate - Fatal编程技术网

为什么我会得到一个';断点不唯一';我的R代码中有错误吗?

为什么我会得到一个';断点不唯一';我的R代码中有错误吗?,r,cut,mutate,R,Cut,Mutate,我是新手,所以这可能是个愚蠢的错误。我试图使用cut函数,但我一直得到相同的错误。错误是: Error: Problem with `mutate()` input `Calls_bucket`. x 'breaks' are not unique i Input `Calls_bucket` is `cut(...) 以下是我的代码(我尝试了许多不同的变体。以下是两个最新版本): m3% 变异(每小时调用次数=cut(每小时调用次数,c(2,4,6,8,10,12,14,16,18,20,最

我是新手,所以这可能是个愚蠢的错误。我试图使用cut函数,但我一直得到相同的错误。错误是:

Error: Problem with `mutate()` input `Calls_bucket`.
x 'breaks' are not unique
i Input `Calls_bucket` is `cut(...)
以下是我的代码(我尝试了许多不同的变体。以下是两个最新版本):

m3%
变异(每小时调用次数=cut(每小时调用次数,c(2,4,6,8,10,12,14,16,18,20,最大值(每小时调用次数,na.rm=T)),
标签=c(“0-2”、“2-4”、“4-6”、“6-8”、“8-10”、“10-12”、“12-14”、“14-16”、“16-18”、“18-20”、“20”))
m3%
变异(每小时呼叫次数=削减(每小时呼叫次数,中断次数=c(2,4,6,8,10,12,14,16,18,20,最大值(每小时呼叫次数,na.rm=T)),标签=c(“0-2”、“2-4”、“4-6”、“6-8”、“8-10”、“10-12”、“12-14”、“14-16”、“16-18”、“18-20”))
如果我简单地选择中断的数量,我就可以让它工作,但我想具体地定义它们。此代码有效,例如:

m3 <- m2 %>%
  mutate(Calls_bucket=cut(Calls_per_Hour,12))
m3%
变异(调用\u bucket=cut(每小时调用\u,12))

提前谢谢。任何帮助都将不胜感激。

对我来说,当我将0作为第一个剪切时,它起到了作用。并且指定了
include.lowest=TRUE
。因此,每0包含在第一个类别中。通过将include.lowest设置为FALSE(默认设置),0将转换为NA

m2 <- data.frame(Calls_per_Hour = 0:25)

m3 <- m2 %>%
  mutate(Calls_bucket=cut(Calls_per_Hour,c(0,2,4,6,8,10,12,14,16,18,20, Inf),
                          labels=c("0-2","2-4","4-6","6-8","8-10","10-12","12-14","14-16","16-18","18-20",">20"),
                          include.lowest = TRUE))

m2定义中断时,如果使用的是
max(每小时调用次数)
,请使用
unique()。
这对我有用

m3 <- m2 %>%
    mutate(Calls_bucket=cut(Calls_per_Hour,unique(c(0,2,4,6,8,10,12,14,16,18,20,max(Calls_per_Hour,na.rm=TRUE))),
                            labels=c("0-2","2-4","4-6","6-8","8-10","10-12","12-14","14-16","16-18","18-20",">20"),include.lowest = T))
m3%
mutate(Calls_bucket=cut(Calls_per_Hour,unique)(c(0,2,4,6,8,10,12,14,16,18,20,max)(Calls_per_Hour,na.rm=TRUE)),
标签=c(“0-2”,“2-4”,“4-6”,“6-8”,“8-10”,“10-12”,“12-14”,“14-16”,“16-18”,“18-20”,“20”),包括(最低=T))
  • unique()
    确保切割的唯一向量,即如果
    max(每小时调用次数)
    等于给定向量中的值,切割保持唯一
  • 由于使用0开始标签,因此剪切中还应包含0
  • 设置
    include.lowest=TRUE
    可确保为遇到的最低值分配一个标签

最大呼叫数是多少(每小时呼叫数,na.rm=T)
?它是否等于您现有的休息时间之一?如果您包含一个简单的示例输入和所需的输出,可以用来测试和验证可能的解决方案,那么就更容易为您提供帮助。请不要使用
max
use
Inf
谢谢Hasan。这成功了!非常感谢您的帮助和解释。
m3 <- m2 %>%
    mutate(Calls_bucket=cut(Calls_per_Hour,unique(c(0,2,4,6,8,10,12,14,16,18,20,max(Calls_per_Hour,na.rm=TRUE))),
                            labels=c("0-2","2-4","4-6","6-8","8-10","10-12","12-14","14-16","16-18","18-20",">20"),include.lowest = T))