【问题标题】:discretization in R with arules package使用 arules 包在 R 中进行离散化
【发布时间】:2015-08-19 16:00:16
【问题描述】:

我正在使用 arules 包来离散化数据框中的连续变量。 我正在使用这个特定的行

离散化(data1,categories = 3)

但它给了我一个错误

cut.default(x,k2) 中的错误:k2 必须是数字

我只是想将我的连续变量从“data1”数据帧转换为 3 箱离散变量。 任何帮助将不胜感激...在此先感谢

【问题讨论】:

  • 你能告诉我们你的数据吗?

标签: r discretization


【解决方案1】:

检查此代码:

library(arules)
data1 <- sample(1:30,100,replace = T)
res <- discretize(data1,categories = 3)

它工作正常。检查

class(data1)

应该是整数数字

【讨论】:

  • 如果 data1 是 data.frame 那么可能是数据框中的某个列,您想要离散化。例如res
【解决方案2】:

这对我来说可以离散所有列:

data1.Disc <- as.data.frame(lapply(data1, 
                                   function(x) discretize(x, categories=5)
                                   )
                           )

【讨论】:

    【解决方案3】:

    您也可以使用 dplyr mutate_if 函数。这对我有用:

    data1 <- data1 %>% mutate_if(is.numeric, funs(discretize(., method="frequency", categories=3)))
    

    【讨论】:

    • 这是一个很好的方法,但 OP 的问题似乎是他的目标变量不是数字(所以is_numeric,在这种情况下,不会是真的)。​​
    • @cmaher 不同意 - OP 的问题是他们在 数据框 上而不是在单个列上调用它。
    猜你喜欢
    • 1970-01-01
    • 2017-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多