离散化多列函数
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 <- 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] <- sapply(dataframe[,2:12], discretize)
是否适用于这种特定情况。如果是这样,那么它只是检测那些不合逻辑也不是因素的列并使用该列索引向量。
【参考方案1】:
我找到了答案,不过感谢大家的帮助。选择和离散化多列:
for (i in 2:12)df[,i]<-discretize(df[,i])
【讨论】:
为什么dataframe[,2:12] <- sapply(dataframe[,2:12], discretize)
不起作用?对于需要离散化的大量列,您的方法可能会较慢。
我尝试过这样做,但当我使用 apriori 时,它仍然说它们不是离散的!
asMethod(object) 中的错误:第 2、3、4、5、6、7、8、9、10、11、12 列不符合逻辑或因素。首先离散列。这就是我后来得到的错误。 @aichao
如果您发现它是如何正常工作的,我很乐意将我的答案记下来。正如您所说,它确实需要的不仅仅是您的功能! @aichao
嘿,如果它对你有用,那么它就有效!我只是好奇,因为我认为两者在功能上应该是等效的。以上是关于离散化多列函数的主要内容,如果未能解决你的问题,请参考以下文章
最近等对 (uniquelower_bound离散化的配合)
R语言使用across函数一次性将多个数据列进行离散化(categorize):或者pivot_longer函数转化为长表对转化为长表的数值数据列进行离散化pivot_wider将数据转化为宽表