Мы можем сгруппировать по «Видам», а затем сделать sum
для «Веса», а затем построить график с помощью geom_col
из ggplot2
library(dplyr)
df %>%
group_by(Species) %>%
summarise(Weight = log(sum(Weight))) %>%
ggplot(aes(x = Species, y = Weight)) +
geom_col()
Или в base R
aggregate(Weight ~ Species, df, sum)
Если нам нужен барплот, тогда используйте
barplot(rowsum(df$Weight, df$Species)[,1])
Если нам нужен log
, то оберните с log
barplot(log(rowsum(df$Weight, df$Species))[,1])
данные
df <- structure(list(Species = c("Dog", "Cat", "Dog", "Dog", "Cat",
"Dog", "Cat"), Weight = c(7L, 2L, 5L, 4L, 3L, 9L, 2L)), class = "data.frame", row.names = c("1",
"2", "3", "4", "245", "246", "247"))