我有兩個數據幀,它們基於第三個更大的數據集。我想根據第二個數據框中的條目來標準化一個數據幀中的數據 - 我最喜歡使用dplyr,但其他包/解決方案也非常感謝:)如何使用dplyr突變兩個數據幀的條件
在我的第一個數據框中,我有不同器官的數量。
數據幀organ_count
# A tibble: 5 x 2
organs count
<fctr> <int>
1 Organ_A 23
2 Organ_B 29
3 Organ_C 24
4 Organ_D 145
5 Organ_E 97
在我的第二個數據幀,我也有同樣的器官的數量,但在在哪個國家,他們出現在大型數據集我作爲源分裂。
數據幀organ_state_count
# A tibble: 15 x 3
organs hmm_state count
<fctr> <chr> <int>
1 Organ_A E1 12
2 Organ_A E2 2
3 Organ_A E3 9
4 Organ_B E1 13
5 Organ_B E2 10
6 Organ_B E3 6
7 Organ_C E1 7
8 Organ_C E2 7
9 Organ_C E3 10
10 Organ_D E1 72
11 Organ_D E2 23
12 Organ_D E3 50
13 Organ_E E1 90
14 Organ_E E2 2
15 Organ_E E3 5
我想現在要做的是:
我想條目總數爲這個器官分化organ_state_count $計數(在organ_state給出),導致這個機構對特定國家的百分比。
我已經嘗試過這樣的事情:
organ_state_count %>%
rowwise() %>%
do(organ_total = filter(organ_count,organs == .$organs)) %>%
mutate(organ_norm=.$count/organ_total)
但它拋出這個錯誤消息:
Error in mutate_impl(.data, dots) :
Evaluation error: arguments imply differing number of rows: 1, 0.
In addition: Warning messages:
1: Unknown or uninitialised column: 'count'.
2: In Ops.factor(left, right) : ‘/’ not meaningful for factors
我必須承認,我是相當新的R和整個dplyr/tidyverse事同樣,所以我有點不知所措。
我也認爲在這個任務中使用organ_state_count框架有一些可能性,並且只在一個數據框中解決所有問題,但我不知道如何。
感謝您的回答和幫助!
在基R,與'ave':'DAT $ PERC < - DAT $計數/ AVE(DAT $計數,DAT $器官, FUN = sum)'其中dat是第二個data.frame的名稱。 – lmo
也對我很好,只是想留在dplyr包更多,所以我接受了其他答案:)儘管如此,感謝您的幫助! – jakoberr