Скажем, у меня есть такой кадр данных:
x <- data.frame(x = c(rep("A", 5), rep("B", 5), rep("C", 5)), Data = rep(1:5, 3))
Как применить эту функцию ко второму (числовому) столбцу для каждой группы A, B и C?:
Percent <- function(x){(x/length(x))*100}
Таким образом, результат выглядит следующим образом:
x Data
A 20
A 40
A 60
A 80
A 100
B 20
B 40
...etc
Я пробовал aggregate()
и различные методы в dplyr
, но либо a) код хочет применить функцию к обоим столбцам, что приводит кошибка или б) он применяет его к столбцу Data
, но не сохраняет фрейм данных, поэтому я просто возвращаю вектор (или список векторов).