0

例如,在这个给定的数据集中,我想获得每个变量的最佳值,这将产生一个预设的“百分比”值:例如,我需要“百分比”的值 >=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))

谢谢

4

1 回答 1

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 行:满足条件的观测百分比(相对于总观测值)

于 2014-05-28T07:59:56.463 回答