1

我使用以下代码从我的原始数据“伪”生成data.frame“df”。

> df<-pseudo %>% group_by(Drug, CLSI_interpretation) %>% 
      summarise(n = n()) %>% 
      filter(Drug %in% c('Cefepime', 'Ceftazidime', 'Piperacillin','Piperacillin/tazobactam','Imipenem','Meropenem','Doripenem','Ciprofloxacin','Levofloxacin','Gentamicin','Tobramycin','Amikacin')) %>% 
      mutate(freq = (n/sum(n)*100))

加上一个很长的 mapvalues 函数,它从“Drug”创建“类”列。

到目前为止一切顺利;生成如下所示的数据集:

Drug         CLSI   n       freq        class
Amikacin        I   7213    4.25503047  Aminoglycosides
Amikacin        R   13995   8.25580915  Aminoglycosides
Amikacin        S   148309  87.48916038 Aminoglycosides
Cefepime        I   13326   8.87713502  Cephalosporins
Cefepime        R   9744    6.49098031  Cephalosporins  
Cefepime        S   127046  84.63188468 Cephalosporins
Ceftazidime     I   10836   5.98558290  Cephalosporins
Ceftazidime     R   15276   8.43814732  Cephalosporins
Ceftazidime     S   154923  85.57626978 Cephalosporins
Ciprofloxacin   I   8949    4.74295103  Fluoroquinolones
Ciprofloxacin   R   31563   16.72832309 Fluoroquinolones

我正在为接下来的步骤而苦苦挣扎。我需要按“类”对这些数据进行分组,并且对于每个类总计 CLSI %in% c('I','R') 的“n”并生成一个新频率......基本上,n(I + R )/n(I+R+S) 和 n(S)/n(I+R+S) 用于每个类别。由于我需要根据对另一个变量(CLSI)的引用来总结一个变量(n),并按第三个(类)分组,因此在找出汇总函数时遇到了很多麻烦。谢谢你的帮助。

4

1 回答 1

6

展示完整的代码总是好的,包括数据的读取。看起来像是pseudo你的数据。管道中项目的语法与 %>%通常的 R 有点不同,因为第一个参数隐含地是管道内容。或者,简单地说:从您的电话中删除“伪”。

library(dplyr)
pseudo = read.table("a.csv",header=TRUE)
pseudo <- pseudo %>%
  group_by(class, CLSI) %>% summarise(n= n())
于 2015-04-21T07:19:13.757 回答