【发布时间】:2014-08-10 14:03:53
【问题描述】:
我正在使用 R 处理药物和反应的大型数据集。目前,我将数据结构化为一个非常高的数据框,其中列出了报告 ID 号、药物名称和报告的反应。如您所知,ID 与药物以及药物与反应之间存在一对多的关系。
请记住,这个数据集比我在这里可以复制的要大得多,我想知道如何找到哪些药物对会导致哪些反应以及以何种频率发生。
最重要的是,我对如何处理这样的问题很感兴趣。数据结构是否正确?我应该阅读哪些概念或库?
这里是一些真实数据的链接:https://www.dropbox.com/s/kzx4mpyytbo9zil/query_result.csv
ID DRUG REACTION
1 1827 ASPIRIN CHEST PAIN
2 1827 CLARINEX CHEST PAIN
3 1827 ASPIRIN COUGH
4 1827 CLARINEX COUGH
5 1827 ASPIRIN HAEMOGLOBIN DECREASED
6 1827 CLARINEX HAEMOGLOBIN DECREASED
7 1827 ASPIRIN NEUTROPHIL COUNT INCREASED
8 1827 CLARINEX NEUTROPHIL COUNT INCREASED
9 1827 ASPIRIN PHARYNGOLARYNGEAL PAIN
10 1827 CLARINEX PHARYNGOLARYNGEAL PAIN
...
在我的小脑袋里,最终结果看起来像这样......
Drug1 Drug2 Reaction Frequency
1 tylenol alcohol hepatic failure 298
2 advil aleve bleeding 201
3 aspirin advil renal failure 199
4 docusate senna diarrhea 146
5 senna sudafed palpitations 121
6 xanax alcohol sedation 111
7 clarinex benadryl dry mouth 96
...
569 ASPIRIN CLARINEX CHEST PAIN 2
Drug1 和 Drug2 是整个数据集中出现频率最高的药物对。 “药物对”定义为具有相同报告 ID 的两种药物的任意组合。上面的示例输出将被解释为“第 1 行有 298 个唯一的报告 ID,其反应是肝功能衰竭。”
【问题讨论】:
-
你是如何选择drug1和drug2的?您应该展示您希望 ASPIRIN 和 CLARINEX 如何进入决赛桌。
-
@mso,问题已更新以回答您的问题。谢谢。
-
我仍然不明白这一点 - 看看你的声誉,我假设你不是在寻求诸如
unique等功能的帮助,如何对数据进行子集化(subset,[),以及如何在unique(df$REACTION)上循环/应用它?除非这是一个相当统计/概念的问题,你能澄清一下编程问题吗? -
每个报告 id 可以有许多 药物 和许多 反应。我想为每个报告 id 获取所有可能的 drugs 对 (drug1 + drug2),然后每个i>reaction 为每个报告 id 并为这三个(frequency)的任何实例增加一个计数器。 (请记住,阿司匹林 + clarinex 与 clarinex + 阿司匹林相同)