2017-07-21 31 views
0

我有(现在)有一个问题,我无法找到解决方案。将“预算”的值更改为R中的类别级别

背景:Termpaper,主题:使用来自Kaggle的数据集,该数据集将imdb用于电影数据。相关预算分析 - > imdb评级和收入 - > imdb评级。

我有可变预算(最低= 11.000,最高300.000.000),并希望将其分为不同的级别(低预算/0.2,5mil,中低,中,高,极高)。

我想从这些数据中获得一个boxplot。任何提示?

+0

'切()'可以做你想做的事,typeof运算 – Henry

回答

0

使用此功能:

codage <-function(name,ncateg){ 
    bornes <-quantile(name, probs = seq(0,1,by=1/ncateg), na.rm =TRUE ,names  = TRUE) 
    Amax <-aggregate(name,list(Nom=cut(name,bornes ,include.lowest=T,label=F)),max) 
    Amin <-aggregate(name,list(Nom=cut(name,bornes ,include.lowest=T,label=F)),min) 
    Afreq<-as.matrix(summary(as.factor(cut(na.omit(name),bornes,include.lowest=T,label=F)))) 
    limites <-as.data.frame(cbind(Amin[,1],Amin[,2],Amax[,2],Afreq)) 
    names(limites)<-c("Classe","Mini","Maxi","Effectif") 

    manques <-length(name)-length(na.omit(name)) 


    varfac <-cut(name,bornes ,include.lowest=T,label=F) 

    as.factor(varfac) 
} 

只需键入codage(要分类变量,类别的数量)

+0

错误( x):找不到对象'nom' 不知道我是否犯了错误? – Tom

+0

哦是的抱歉,我没有错误让我纠正这 –

+0

你现在可以再试一次吗? –

0
data_op %>% 
    mutate(level = car::recode(data_op$level, 
          "1:2500000 = 'Low Budget'; 
          2500001:30000000 = 'Medium Budget'; 
          30000001:199999999 = 'High Budget'; 
          200000000:300000000 = 'Most Expensive Film Budget'", 
          as.factor.result = TRUE)) -> data_op 
+0

不错,它更短,似乎工作 –