我已经对数据框应用了一种处理方法,我想将所有这些处理方法放在一个函数中以方便其执行。该函数通过执行代码来设置表及其大小,这是显示的错误:
dim(table_data)中的错误<-n: 昏暗[产品39476]与对象[9]的长度不匹配
explore_data=function(table=data.frame(a=factor(),b=factor(),c=factor(),d=factor(),e=factor(),f=factor()),n){
dim(table_data)=n
#mettre toutes les requetes en miniscule :
table=table%>%mutate(a=str_to_lower(table$a))
#extraire les metiers
table_metier=table[,c('a','d','f')]
#pour chaque id_requete on va garder que l'url avec la position url cliquee maximale:
table=filter(table,c!='null')
table=table%>%mutate(c=as.numeric(as.character(c)))
table=group_by(table,b)%>%mutate(max_c=max(c))%>%filter(c==max_c)
#le nombre d'utilisateur different qui ont fait le clic sur l'url
tab_e=group_by(table,a,d,e)%>% summarise(nb_e=n())
#regrouper les données
table=table[, c('a','d','b','e','f','max_c')]
#But:calculer de la probabilité du clique sur une url pour une requete
#Pour chaque requete on calcule le nombdre de clique sur une réponse : nb_req
agreg1=table %>%group_by(a) %>% summarize(nb_a=n())
#on calcule pour chaque requete le nombre de fois ou une url est cliquée : nb_clic_url
agreg2 =table %>%group_by(a,d,max_c) %>% summarize(nb_d=n())
#on calcule la probabilté en divisant les deux: pr_clic = nb_clique_url/nb_requete
table_prob_clic_url=merge(agreg1,agreg2,by="a")%>%filter(nb_a!=0) %>% mutate(pr_clic=nb_d/nb_a )
#but: on va calculer la probabilité qu'une reponse au rang n soit cliquée
#nombre de requete avec un clique au rang n:
agreg4=group_by(table,max_c)%>%summarize(nb_c_n=n())
#on supprime les id requtes identiques et on compte le nombre de requete
nb_req=nrow( distinct(table,b, .keep_all= FALSE))
#on calcule la probabilité qu'une requete au rang n soit cliqué
table_req_rang=agreg4%>%mutate(prob_req_clic=nb_c_n/nb_req)
#calculer la différence des probablités
table_final=merge(table_req_rang,table_prob_clic_url , by="max_c") %>% mutate(diff=abs(pr_clic - prob_req_clic))
#on ajoute le nombre d'utilisateur
table_data_final= merge(table_final,tab_e, by=c("a","d"))
#on ajoute une colonne prop_clic_url = nombre de clique sur url/ nb_req
table_data_final=mutate(table_data_final,prop_clic_url=nb_d/nb_a)
#on ajoute les metiers :
table_data_final=merge(table_data_final,table_metier ,by=c("a","d"))
#supprimer les doublons
table_data_final=group_by(table_data_final,a,d)%>% distinct(f, .keep_all= TRUE)
#filtrere les prosition_url_cliqué>3 ,nombre d'utilisateur >3 et #ordonner du plus grand au plus petit
table_data_final=filter(table_data_final,max_c>3,nb_e>3)
table_data_final=table_data_final%>% arrange(desc(prop_clic_url,nb_req,max_c))
table_data_final=table_data_final[, c('a','d','max_c','nb_c_n','nb_req','nb_d','prop_clic_url','nb_e','f','prob_req_clic','pr_clic','diff')]
return(table_data_final)
}
我想最后得到一张经过处理的桌子