我有两个数据帧,它们基于第三个更大的数据集。我想根据第二个数据框中的条目来标准化一个数据帧中的数据 - 我最喜欢使用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