希望有人可以为绝望的学生提供帮助 :-) 我有一组程序代码,我有不同数量的手术(这里:程序)以及它们各自的持续时间。我想获得一些关于持续时间的描述性统计数据。为此,我希望我的循环已经通过 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)
有人知道我该怎么做吗?
非常感谢您!