У меня есть набор данных с 17 переменными, все они целые/число. Для лучшего описательного анализа я создал эту определяемую пользователем функцию:
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))
}
Когда я использую эту функцию в своем наборе данных, используя:
apply(df, 2, sum)
Я получаю следующую ошибку:
Ошибка: оценка слишком глубоко вложена: бесконечная рекурсия/опции (выражения =)? Ошибка во время завершения: оценка слишком глубоко вложена: бесконечная рекурсия / параметры (выражения =)?
Пытаюсь понять в чем дело, но все тщетно, помогите пожалуйста!
sum
, затем внутри нее вы вызываете функциюsum
для выполнения суммирования. Измените имя вашей функции. - person   schedule 23.10.2015mean<-mean(x,na.rm=T)
, вместо именования результатаmean
попробуйте использовать что-то вроде этого:meanResult <- mean(x, na.rm = TRUE)
- person pogibas   schedule 23.10.2015sum <- function(x){ sum(x) }; sum(1)
.Error: evaluation nested too deeply: infinite recursion / options(expressions=)?
- person   schedule 23.10.2015sum
-detail
,min/max
-min/max_res
,mean - m
,sd - std
. Но я все еще получаю ту же ошибку. - person Ranjan Pandey   schedule 23.10.2015sum - detail
,min/max
...? - person   schedule 23.10.2015sum
наdetail
, а также для некоторых переменных, которые я использовал внутри функции. - person Ranjan Pandey   schedule 23.10.2015