2017-06-29 28 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