我使用arules包来离散化数据框中的连续变量。 我使用这个特定的行R与arules包离散化
离散化(DATA1,类别= 3)
但其给我一个误差在cut.default(X,K2)
错误:K2必须是数字
我只是试图将我的连续变量从“data1”数据框转换为3个bin离散变量。 任何帮助,将不胜感激...谢谢提前
我使用arules包来离散化数据框中的连续变量。 我使用这个特定的行R与arules包离散化
离散化(DATA1,类别= 3)
但其给我一个误差在cut.default(X,K2)
错误:K2必须是数字
我只是试图将我的连续变量从“data1”数据框转换为3个bin离散变量。 任何帮助,将不胜感激...谢谢提前
检查这个代码:
library(arules)
data1 <- sample(1:30,100,replace = T)
res <- discretize(data1,categories = 3)
它正常工作。检查
class(data1)
应该整数或数字
如果data1是data.frame,那么可能是您想要离散的数据框中的某个列。例如res < - discretize(data1 [[columnName]],categories = 3) – grubjesic
这为我工作:
data1.Disc <- as.data.frame(lapply(data1,
function(x) discretize(x, categories=5)
)
)
您还可以使用dplyr mutate_if功能。这对我有效:
data1 <- data1 %>% mutate_if(is.numeric, funs(discretize(., method="frequency", categories=3)))
这是一个很好的方法,但OP的问题似乎是他的目标变量不是数字的(所以'is_numeric',在这种情况下,不会是真正)。 – cmaher
你能告诉我们你的data1吗? – grubjesic