我需要创建一个新的3级分类变量来反映受试者是否死于过量服药的某一类药物。级别将类似于:“仅限A类”、“仅限B类”、“A类+B类”。
在数据框内,有许多(约90)个不同的个体药物变量,它们是二元变量(0/1),表明该药物是否在受试者的毒理学中被发现。我需要做的是找到一种方法来创建这个新的因子变量,它会告诉我们,如果在单个受试者中发现了25种A类药物,然后根据是否也存在B类药物,为新的因子变量分配一个“A类”或“A类+B类”的值。
我被从哪里开始弄得不知所措。有什么建议吗?
发布于 2020-01-07 00:13:51
没有可重复的示例,我可以向您解释可能工作的步骤。既然你被从哪里开始弄得不知所措,这篇文章有望给你一个框架,告诉你如何思考如何解决这样的问题。
1)首先,我们需要知道A类和B类药物是什么。假设你有这个信息,你可以将这两类药物分成各自的数据框(保持原始不变)。
2)下一步,我们需要知道受试者是否含有药物。我们可以通过在每个真或假的数据帧上创建一个新列来做到这一点。我们将检查的条件是行的和是否大于0。如果为true,则至少有一种药物的值必须为1。例如:
df.class.A$has.drug <- ifelse(rowSums(df.class.A > 0, TRUE, FALSE)3)我们现在需要通过检查三个条件在原始数据框中创建一列。
df$drugs <- ifelse(df.class.A$has.drug == TRUE,
ifelse(df.class.B$has.drug == TRUE, 'Class A and B', 'Class A'),
ifelse(df.class.B$has.drug == TRUE, 'Class B', 'NONE'))第一个if表示“如果我们有A类,检查我们是否有B类,否则,检查我们是否有B类”。
第二个if写着“我们有Class A,所以如果我们有class B,那么写"class A A”,如果我们没有class B,那么就写"Class A“。
最后一条说“我们没有Class A,所以如果我们有class B,那么就写"Class B",如果我们没有class B,那么我们什么都没有,所以写"none”(你也可以写NA或其他任何东西)。
https://stackoverflow.com/questions/59612788
复制相似问题