, как @alistaire упомянул в комментариях, ваши данные на самом деле не в хорошей форме для построения графика с ggplot2
... поэтому ниже приведен пример, где я настраиваю некоторые данные так, как ваши структурированы, используйте команду collect дляпотяните его в столбцы, затем снова соедините.Затем я строю графики, используя примеры отсюда: http://www.sthda.com/english/wiki/ggplot2-error-bars-quick-start-guide-r-software-and-data-visualization
Надеюсь, это поможет ...
library(tidyverse)
df <- data.frame(V1=c(100, 20), V2=c(200,30), V3=c(150,15))
df
#> V1 V2 V3
#> 1 100 200 150
#> 2 20 30 15
means <- df[1,]
sds <- df[2,]
means_long <- gather(means, key='var', value='mean')
means_long
#> var mean
#> 1 V1 100
#> 2 V2 200
#> 3 V3 150
sds_long <- gather(sds, key='var', value='sd')
sds_long
#> var sd
#> 1 V1 20
#> 2 V2 30
#> 3 V3 15
sds_long %>%
inner_join(means_long) ->
combined_long
#> Joining, by = "var"
combined_long
#> var sd mean
#> 1 V1 20 100
#> 2 V2 30 200
#> 3 V3 15 150
p <- ggplot(combined_long, aes(x=var, y=mean)) +
geom_bar(stat="identity") +
geom_errorbar(aes(ymin=mean-sd, ymax=mean+sd), width=.2)
p
