使用for循环和ggplot绘制小倍数

我有一个数据集,如下所示:

Unit    Group    Feature1    Feature2    Feature3    Feature4
1         1        blue         x           a           12
2         1        yellow       y           b           15
3         2        green        x           a           13
4         3        indigo       z           c           12
5         1        green        y           b           16

我想创建一个可视化网格(小倍数),其中每一行都是一组,每一列包含每个功能的比例(即表函数table(dataset $ feature1))。但是,我在使用for循环时很难创建以下可视化表格的网格。目前,我得到四个不同的图像,每个图像都有四个图表。关于如何将其变成基本上为4x4的条形图而不是4张单独图像的想法?

library(gridExtra)

input_max_groups <- 4

for (i in 1:input_max_groups) {

dataset_subset <- subset(dataset, group== i)

feature1_df <- as.data.frame(table(dataset_subset$feature1)/nrow(dataset_subset)*100)

feature1_plot <- feature1_df %>%
  ggplot(aes(x=Var1, y=Freq)) +
    geom_bar(stat="identity", fill="#f68060", alpha=.6, width=.4) +
    xlab("") +
    theme_bw()

feature2_df <- as.data.frame(table(dataset_subset$feature2)/nrow(dataset_subset)*100)

feature2_plot <- feature2_df %>%
  ggplot(aes(x=Var1, y=Freq)) +
    geom_bar(stat="identity", fill="#f68060", alpha=.6, width=.4) +
    xlab("") +
    theme_bw()

feature3_df <- as.data.frame(table(dataset_subset$feature3)/nrow(dataset_subset)*100)

feature3_plot <- feature3_df %>%
  ggplot(aes(x=Var1, y=Freq)) +
    geom_bar(stat="identity", fill="#f68060", alpha=.6, width=.4) +
    xlab("") +
    theme_bw()

feature4_df <- as.data.frame(table(dataset_subset$feature4)/nrow(dataset_subset)*100)

feature4_plot <- feature4_df %>%
  ggplot(aes(x=Var1, y=Freq)) +
    geom_bar(stat="identity", fill="#f68060", alpha=.6, width=.4) +
    xlab("") +
    theme_bw()

plot <- grid.arrange(feature1_plot, feature2_plot, feature3_plot, feature4_plot, nrow=4)

}