Я использовал следующий код для генерации data.frame 'df' из моих исходных данных, 'псевдо'.dplyr трубопровод: сложные функции в сумме
> 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 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
Я борюсь со следующими шагами. Мне нужно сгруппировать эти данные с помощью «класса», а для каждого класса - «n» CLSI% в% c («I», «R») и создать новую частоту ... в основном, n (I + R)/n (I + R + S) и n (S)/n (I + R + S) для каждого класса. Имея много проблем, выясняя функцию обобщения, потому что мне нужно суммировать одну переменную (n) на основе ссылки на другую (CLSI) и сохранять ее сгруппированной третьим (классом). Спасибо за вашу помощь.
В цепочке, подобной 'lhs%>% rhs', оператор'%>% 'представляет собой« Размещение lhs в качестве первого аргумента в вызове rhs ». Таким образом, в вашем случае результат 'group_by (pseudo, class, CLSI)' используется как аргумент '.data' в' summaryize'. Когда вы добавляете «псевдо», это уже не первый аргумент, а один из «...». 'summaryise 'ожидает единственное значение каждого вызова в' ... '. «Результатом» «псевдо», с другой стороны, является целый кадр данных. Таким образом, ошибка. – Henrik
Вы ищете что-то вроде 'df%>% group_by (class)%>% mutate (prop.s = mean (CLSI ==" S "), prop.ir = 1 - prop.s)'? – aosmith
Спасибо @aosmith, но это только печатает 1/3 и 2/3, так как это просто измерение доли записей CLSI S по сравнению с I + R в каждом классе, что составляет 1: 2. Мне нужно это, чтобы суммировать n, связанные с этими CLSI. – jlev514