Мы можем использовать prop.table
с table
, чтобы получить пропорцию
prop.table(table(data), 1)[,2]
Чтобы добавить ее в виде столбца, мы можем расширить ее, сопоставив с «именами»
data$Percentage <- prop.table(table(data), 1)[,2][as.character(data$name)]
Или, как предложил @Lars Lau Raket, нам не нужно конвертировать в character
prop.table(table(data), 1)[,2][data$name]
Если нам нужно создать столбец
library(dplyr)
data %>%
group_by(name) %>%
mutate(Percentage = mean(present==1))