J'ai un jeu de données avec 17 variables, toutes entières/num. Pour une meilleure analyse descriptive j'ai créé cette fonction définie par l'utilisateur:R Erreur de fonction
sum <- function(x)
{
na.len<-sum(is.na(x))
mean<-mean(x,na.rm=T)
sd<-sd(x,na.rm=T)
min<-min(x,na.rm=T)
q1<-quantile(x,0.25,na.rm=T)
q3<-quantile(x,0.75,na.rm=T)
max<-max(x,na.rm=T)
UC1=mean+3*sd
LC1=mean-3*sd
UC2=quantile(x,0.99,na.rm=T)
LC2=quantile(x,0.01,na.rm=T)
iqr=IQR(x,na.rm=T)
UC3=q3+1.5*iqr
LC3=q1-1.5*iqr
ot<-max>UC1 | min<LC1 | max>UC2 | min<LC2 | max>UC3 | min<LC3
x[x>max]<-max
x[x<min]<-min
out_exist <- ifelse(noofNA > 0, "outlier_exists", "")
return(c(noofNA=na.len,mean=mean,std=sd,min=min,q1=q1,q3=q3,max=max,outlier=ot, out_exists= out_exist))
}
Lorsque j'utilise cette fonction sur mon jeu de données à l'aide:
apply(df, 2, sum)
je suis l'erreur suivante:
Error: evaluation nested too deeply: infinite recursion/ options(expressions=)? Error during wrapup: evaluation nested too deeply: infinite recursion/options(expressions=)?
I J'essaie de comprendre quel est le problème, mais en vain, s'il vous plaît aider!
Si vous demandez pourquoi ce code ne fonctionne pas, il doit être inclus avec un exemple minimum reproductible. Je recommande également de diviser la fonction en petites parties et de trouver où cela ne fonctionne pas. – akrun
Vous avez nommé votre fonction 'sum', puis à l'intérieur, vous appelez la fonction' sum' pour effectuer la sommation. Changez le nom de votre fonction. –
Aussi, ne faites pas comme ceci 'mean <-mean (x, na.rm = T)', au lieu de nommer le résultat 'mean' essayez d'utiliser quelque chose comme ceci:' meanResult <- mean (x, na.rm = TRUE) ' – PoGibas