我目前正在开展一个项目,我有一个巨大的数据框,16196个包含25个变量。目标是消除每个特定治疗可能在数据框中的任何异常值。问题是带有治疗的色谱柱在那里进行了各种治疗,每种治疗方法的长度都不同。让我举个例子。
val_lvl2:chr"颈椎融合术(脊柱融合术)" "非手术治疗" "非手术治疗" "非手术治疗" ...
prd_num_of_days_num:num 167 46 46 46 167 46 46 46 167 46 ...
输出来自str(z_combined_cost_dtrmnt)
我们可以看到val_lvl2具有所有治疗(100+未显示)。并且prd_num_of_days_num具有该特定治疗的长度。现在我要做的就是结合所有(其中还有更多)"颈椎融合"数据和"非手术治疗"数据到那里有自己的小数据帧。在那之后,我想对治疗的长度产生95%的置信度,然后删除不属于该CI的任何数据行。然后带回数据帧,以便我们再次获得1个大数据帧,但每次处理中的异常值都消失了。
我很感激任何帮助,因为我真的不知道从哪里开始,因为似乎没有简单的方法来按照我想要的方式分解数据帧。
目前正在考虑使用聚合函数。
agg< - aggregate(z_combined_cost_dtrmnt $ prd_num_of_days_num,by = list(val_lvl2 = z_combined_cost_dtrmnt $ val_lvl2),by = list(val_lvl3 = z_combined_cost_dtrmnt $ val_lvl3),FUN = SD)
然而,这会出现此错误:aggregate.data.frame(as.data.frame(x),...)中的错误:正式参数" by"由多个实际参数匹配
TL / DR
大数据框架 - >
较小的数据框基于val_lvl2中的唯一值,记住有类似的唯一值,即" Cervical Fusion"应该在同一个小数据框中 - >
基于每个小数据帧的prd_num_of_days_num(治疗长度)创建95%CI - >
如果prd_num_of_days_num不在CI中,则删除每个唯一值的整行 - >
将没有异常值的小数据帧再次合并到一个大数据帧中。
答案 0 :(得分:0)
所以你有一个数据帧(df),有25个变量,你想把它分解成X个较小的数据帧,x是唯一处理的数量,每个包含剩余的24个变量,但只包含一个类型治疗。正确的吗?
treatment1 <- df[df$val_lvl2 == "Cervical Fusion (Spinal Fusion)"]
treatment2 <- df[ds$val_lvl2 =="Non-Surgical Treatment"]
# etc...
有更简洁,更好的方法,但我认为这是你应该开始掌握如何在R中组织数据。