2015-08-19 87 views
4

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

离散化(DATA1,类别= 3)

但其给我一个误差在cut.default(X,K2)

错误:K2必须是数字

我只是试图将我的连续变量从“data1”数据框转换为3个bin离散变量。 任何帮助,将不胜感激...谢谢提前

+1

你能告诉我们你的data1吗? – grubjesic

回答

0

检查这个代码:

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

它正常工作。检查

class(data1) 

应该整数数字

+0

如果data1是data.frame,那么可能是您想要离散的数据框中的某个列。例如res < - discretize(data1 [[columnName]],categories = 3) – grubjesic

1

这为我工作:

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

您还可以使用dplyr mutate_if功能。这对我有效:

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

这是一个很好的方法,但OP的问题似乎是他的目标变量不是数字的(所以'is_numeric',在这种情况下,不会是真正)。 – cmaher