例如,在这个给定的数据集中,我想得到每个变量的最佳值,它将产生预设值“百分比”:例如,我需要“百分比”的值将是> = 0.7 所以在这种情况下,结果应该是这样的:
birds >=5,1<wolfs<=3 , 2<=snakes <=4
示例数据集:
dat <- read.table(text = "birds wolfs snakes percentage
3 8 7 0.50
1 2 3 0.33
5 1 1 0.66
6 3 2 0.80
5 2 4 0.74",header = TRUE
我无法使用决策树,因为我有一个大型数据框,我无法正确查看所有树。我尝试了*arules*
包,但它要求所有变量都是因子,我有因子,逻辑和连续变量的混合数据集,我想保持变量和独立变量继续。我也需要“百分比“变量是我想要优化的唯一变量。
我用*arules*
包编写的代码是:
library(arules)
dat$birds<-as.factor(dat$birds)
dat$wolfs<-as.factor(dat$wolfs)
dat$snakes<-as.factor(dat$snakes)
dat$percentage<-as.factor(dat$percentage)
rules<-apriori(dat, parameter = list(minlen=2, supp=0.005, conf=0.8))
谢谢
答案 0 :(得分:1)
我可能误解了这个问题但是为了获得每个变量的最大值而限制为percentage >= 0.7
你可以这样做:
lapply(dat[dat$percentage >= 0.7, 1:3], max)
$birds
[1] 6
$wolfs
[1] 3
$snakes
[1] 4
评论后编辑:
所以也许这就是你想要的更多:
> as.data.frame(lapply(dat[dat$percentage >= 0.7,1:3], function(y) c(min(y), max(y))))
birds wolfs snakes
1 5 2 2
2 6 3 4
如果percentage >=0.7
如果这完全没有你要达到的目标,我可能不是帮助你的合适人选。
编辑#2:
> as.data.frame(lapply(dat[dat$percentage >= 0.7,1:3], function(y) c(min(y), max(y), length(y), length(y)/nrow(dat))))
birds wolfs snakes
1 5.0 2.0 2.0
2 6.0 3.0 4.0
3 2.0 2.0 2.0
4 0.4 0.4 0.4
第1行:分钟 第2行:最大 第3行:满足条件的观测数量 第4行:满足条件的观测百分比(相对于总观测值)