2017-06-29 56 views
0

我目前正在一个项目中,我有一个庞大的数据框,16196 obs的25个变量。目标是消除可能出现在每种特定治疗的数据框中的任何异常值。问题是具有治疗的柱子在那里有每种治疗,并且每种治疗具有不同的持续时间。让我给你看一个例子。通过匹配相似的行解构R中的列?

val_lvl2:字符 “颈椎椎间融合(脊柱融合)”, “非手术治疗”, “非手术治疗”, “非手术治疗” ...

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的数据行。然后带回数据框,以便我们再次有一个大数据框,但每种处理中的异常数据都没有了。

我将不胜感激任何帮助,因为我真的不知道从哪里开始,因为看起来没有简单的方法按照我想要的方式来分解数据帧。

目前正在考虑使用聚合函数。

AGG < - 骨料(z_combined_cost_dtrmnt $ prd_num_of_days_num,通过=名单(val_lvl2 = z_combined_cost_dtrmnt $ val_lvl2),由=名单(val_lvl3 = z_combined_cost_dtrmnt $ val_lvl3),FUN = SD)

但是它给出了这个错误:错误在aggregate.data.frame(as.data.frame(X),...):正式的说法 “由” 由多个实际参数

TL/DR

大数据帧匹配 - >

小型数据框es基于val_lvl2中的唯一值记住存在类似的唯一值,即多个“Cervical Fusion”实例应该位于相同的小数据框中 - >

基于prd_num_of_days_num(长度)创建95%CI处理)的每个小数据帧的 - >

卸下整行的每个唯一值,如果是prd_num_of_days_num CI之外 - >

再次与没有异常值小的数据帧合并为一个大的数据帧。

+1

欢迎组织数据R.到StackOverflow的把握。请提供[MCVE] –

+0

嘿@StevenBeaupré!我目前的想法是可能尝试聚合。这是迄今为止我所拥有的。 AGG < - 骨料(z_combined_cost_dtrmnt $ prd_num_of_days_num,通过=列表(val_lvl2 = z_combined_cost_dtrmnt $ val_lvl2),由=列表(val_lvl3 = z_combined_cost_dtrmnt $ val_lvl3),FUN = SD) 然而,让此错误:在聚合 错误.data.frame(as.data.frame(x),...): 形式参数“by”由多个实际参数匹配 – nazgulian

回答

0

因此,您有一个数据框(df),包含25个变量,并且您想将其分解为X个较小的数据框,x是唯一处理的数量,每个处理包含剩余的24个变量,但仅包含一个治疗类型。正确?

treatment1 <- df[df$val_lvl2 == "Cervical Fusion (Spinal Fusion)"] 
treatment2 <- df[ds$val_lvl2 =="Non-Surgical Treatment"] 
# etc... 

还有更简洁,“更好”的方式来做到这一点,但我认为这是你应该开始得到如何

+0

是的!我曾经想过要做你刚刚做的事情。但是因为在val_lvl2中有大约150次治疗,所以我希望能找到更有效率和更普遍的东西。 一些会遵循这条道路的东西。 大数据框 - >基于唯一val_lvl2的较小数据框 - >基于每个小数据框的prd_num_of_days_num创建95 CI - >如果在CI之外的prd_num_of_days_num删除整行 - >合并没有异常值的小数据框再次成为一个大数据框。 不知道为什么文本没有隔开怎么样我也想要它... – nazgulian

+0

对不起,但是我想要完成你想要完成的事情有点困难。我建议你删除这篇文章,然后制作一个可以轻松复制的小规模示例代码。 (1:长度(疗程))){ 指定(粘贴()){处理< - 唯一(df $ val_lvl2) 要做我以上所做的所有情况的快速方法, (“df_”,治疗[[i]],sep =''),df [df ==治疗[​​[i]]) }' – 20salmon

+0

谢谢!如果我无法从已发布的内容中挤出解决方案,我会看到那个小片段让我回到这个板子。这有点复杂,所以我很欣赏这种努力! – nazgulian