离散化多列函数

Posted

技术标签:

【中文标题】离散化多列函数【英文标题】:discretize function of multiple columns 【发布时间】:2016-08-03 17:49:52 【问题描述】:

我有以下 csv: https://github.com/antonio1695/Python/blob/master/nearBPO/facturasprueba.csv

有了它,我想使用apriori 函数来查找关联规则。但是,我得到了错误:

asMethod(object) 中的错误: 第 2、3、4、5、6、7、8、9、10、11、12 列不合逻辑或因素。首先离散列。

我之前已经遇到过这个错误,我所做的是:

dataframe$columnX <- discretize(df$columnX) 

但是,这只有在我手动选择每一列并一一离散化时才有效。我想做同样的事情,但对于 aprox 3k 列。我给你的箱子只有11个,我猜11个就行了。

【问题讨论】:

dataframe &lt;- sapply(dataframe, discretize) 会工作吗? 不,我收到以下错误:* Summary.factor 中的错误(c(1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, : 'min ' 对因子没有意义* 我不确定,但可能是因为第一列不是数字列。 @华纳 我将第一列设为索引,我不确定它会如何影响 apriori 函数。在我使用 apriori 函数之前,它似乎没有崩溃。它向我发送以下错误: asMethod(object) 中的错误:矩阵不是逻辑或数字 0-1 矩阵! @华纳 我想知道dataframe[,2:12] &lt;- sapply(dataframe[,2:12], discretize) 是否适用于这种特定情况。如果是这样,那么它只是检测那些不合逻辑也不是因素的列并使用该列索引向量。 【参考方案1】:

我找到了答案,不过感谢大家的帮助。选择和离散化多列:

for (i in 2:12)df[,i]<-discretize(df[,i])

【讨论】:

为什么dataframe[,2:12] &lt;- sapply(dataframe[,2:12], discretize) 不起作用?对于需要离散化的大量列,您的方法可能会较慢。 我尝试过这样做,但当我使用 apriori 时,它仍然说它们不是离散的! asMethod(object) 中的错误:第 2、3、4、5、6、7、8、9、10、11、12 列不符合逻辑或因素。首先离散列。这就是我后来得到的错误。 @aichao 如果您发现它是如何正常工作的,我很乐意将我的答案记下来。正如您所说,它确实需要的不仅仅是您的功能! @aichao 嘿,如果它对你有用,那么它就有效!我只是好奇,因为我认为两者在功能上应该是等效的。

以上是关于离散化多列函数的主要内容,如果未能解决你的问题,请参考以下文章

UVA 12171 Sculpture 离散化

最近等对 (uniquelower_bound离散化的配合)

R语言使用across函数一次性将多个数据列进行离散化(categorize):或者pivot_longer函数转化为长表对转化为长表的数值数据列进行离散化pivot_wider将数据转化为宽表

JZYZOJ1355 [usaco2007]奶牛赛跑 矩阵乘法 离散化

数据离散化-分箱

算法学习——离散化(整数离散化)