У меня есть фрейм данных следующим образом
Endo Proc Adenoma
1 Colon Y
1 Colon Y
1 Colon N
2 Colon Y
2 OGD N
3 Colon Y
3 Colon N
3 OGD N
Я хочу найти пропорцию Proc
, которые являются двоеточиями и имеют Y для Adenoma
, сгруппированные по Endo
.
В настоящее время я использую длинный код, как показано ниже:
MyColonDataAdenomaDetectionByEndoscopist <-
dataframe[grep(".*[Aa]denom.*", dataframe[, Adenoma]),]
MyColonDataAdenomaDetectionByEndoscopist <-
MyColonDataAdenomaDetectionByEndoscopist %>%
group_by_(Endo) %>%
do(data.frame(NumAdenomas = nrow(.)))
MyColonDataADR <-
full_join(
MyColonDataAdenomaDetectionByEndoscopist,
MyColonDataColonoscopiesByEndoscopist,
by = Endo
)
MyColonDataADR$PropAdenomas <-
(MyColonDataADR$NumAdenomas / MyColonDataADR$NumColons) * 100
Я уверен, что могу сократить это.В конце я хочу, чтобы это было как функция, так как позже я сделаю несколько подобных вещей.
Проблема, с которой я столкнулся, заключается в возможности сделать две группировки в одной dplyr
трубе (я группирую, чтобы увидеть всеProc
называется Colon
выполненным каждым Endo
, а затем просто сгруппируйте число Colon
, которое также положительно для Adenoma
по каждому Endo
, а затем разделите одно на другое, чтобы получить пропорцию.
Есть ли более простой способ сделать это?