希望有人可以为绝望的学生提供帮助 :-) 我有一组程序代码,我有不同数量的手术(这里:程序)以及它们各自的持续时间。我想获得一些关于持续时间的描述性统计数据。为此,我希望我的循环已经通过 IQR 函数检测和删除异常值。这是没有异常值检测和删除的代码:
# 输出变量 - 在每个循环之前运行 计数器0<-1 过程代码<-NULL 数字<-NULL Min_Times<-NULL Max_Times<-NULL 平均时间<-NULL 中值时间<-NULL SD_Times<-NULL #循环遍历所有程序代码 而(计数器0<=number_of_different_procedurecodes){ a_g_procedures2<-NULL 过程名称<-eval(list_of_procedurecodes[Counter0]) 过程名称<-unlist(过程名称) 打印(程序名称) a_g_procedures2$Duration<-NULL 持续时间<-NULL number_of_procedures<-0 #特定过程的子集数据 a_g_procedures2<-subset(a_g_procedures1,ProcedureCode==Procedure_Name) number_of_procedures<-length(a_g_procedures2$ProcedureCode) 计数器1<-1 #循环特定过程 而(计数器 1<=number_of_procedures){ a_g_procedures$Duration<-NULL TimeIn_1_Selected<-a_g_procedures2$"TimeIn_1"[Counter1] TimeIn_1_Selected<-as.POSIXct(TimeIn_1_Selected,format="%d/%m/%Y %H:%M") TimeIn_1_S<-as.numeric(TimeIn_1_Selected) TimeIn_2_Selected<-a_g_procedures2$"TimeIn_2"[Counter1] TimeIn_2_Selected<-as.POSIXct(TimeIn_2_Selected,format="%d/%m/%Y %H:%M") TimeIn_2_S<-as.numeric(TimeIn_2_Selected) TimeOut_Selected<-a_g_procedures2$"TimeOut"[Counter1] TimeOut_Selected<-as.POSIXct(TimeOut_Selected,format="%d/%m/%Y %H:%M") 如果 (TimeIn_1_S>TimeIn_2_S) { Start_Time<-TimeIn_2_Selected } 如果 (TimeIn_1_S<=TimeIn_2_S) { Start_Time<-TimeIn_1_Selected } 打印(开始时间) 打印(TimeOut_Selected) 持续时间<-difftime(TimeOut_Selected, Start_Time, units = "mins") 持续时间<-c(持续时间,持续时间) 计数器 1<-计数器 1+1 } Procedure_codes<-c(Procedure_codes,Procedure_name) 持续时间<-as.numeric(持续时间) 平均时间<-平均(持续时间,数字=1) SD_Time<-sd(持续时间,na.rm=TRUE) Min_Time<-min(持续时间,na.rm=TRUE) Max_Time<-max(持续时间,na.rm=TRUE) Median_Time<-median(持续时间,na.rm=TRUE) Average_Times<-c(Average_Times,Mean_Time) SD_Times<-c(SD_Times,SD_Time) Min_Times<-c(Min_Times, Min_Time) Max_Times<-c(Max_Times, Max_Time) Median_Times<-c(Median_Times, Median_Time) Number<-c(Number,number_of_procedures) 计数器0<-计数器0+1 } ag_output<-data.frame(Procedure_codes,Number,Min_Times, Max_Times, Average_Times, Median_Times, SD_Times)
这是我希望通过特定过程添加到循环中的内容:
Q<-quantile(Duration, probs=c(.25,.75), na.rm=FALSE)
iqr<-IQR(Duration)
up<-Q[2]+1.5*iqr
low<-Q[1]-1.5*iqr
remove<-Duration>(Q[1]-1.5*iqr) & Durations<(Q[1]-1.5*iqr)
setdiff(Duration, remove)
有人知道我该怎么做吗?
非常感谢您!