R 如何在ggplot2中将每个变量作为条形图创建条形图?

R 如何在ggplot2中将每个变量作为条形图创建条形图?,r,matrix,ggplot2,bar-chart,tibble,R,Matrix,Ggplot2,Bar Chart,Tibble,我正在做一个蒙特卡罗模拟,它会给出一个包含10000个8个数值变量的观测值的矩阵。我使用dplyr总结了8个变量,如下所示: # A tibble: 2 x 8 V1 V2 V3 V4 V5 V6 V7 V8 <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> 1 29196. 12470.

我正在做一个蒙特卡罗模拟,它会给出一个包含10000个8个数值变量的观测值的矩阵。我使用dplyr总结了8个变量,如下所示:

# A tibble: 2 x 8
  V1     V2     V3     V4     V5    V6     V7    V8
 <dbl>  <dbl>  <dbl>  <dbl>  <dbl> <dbl>  <dbl> <dbl>
1 29196. 12470. 6821.  5958.  22375. 6512. 10931. 2732.
2  1675.   419.   59.1   15.5  1636.  408.   858.  312.
#一个tible:2x8
V1 V2 V3 V4 V5 V6 V7 V8
1 29196. 1247068215958223756512109312732
2  1675.   41959.1   15.5  1636.  408858312
其中第一行是每个变量的平均值,第二行是每个变量的标准偏差。我如何使用此汇总统计数据创建一个条形图,其中8个条形图的高度为平均值,误差条为标准偏差?我主要不知道如何填写ggplot的“aes”部分


提前谢谢。

正如@alistaire在评论中提到的,您的数据不是很好,无法用
ggplot2
绘制。。。下面是一个示例,我按照您的数据结构设置了一些数据,使用“聚集”将其拉入列中,然后将其重新连接。然后,我使用以下示例进行绘图:

我希望这有助于

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  
库(tidyverse)
测向V1 V2 V3
#> 1 100 200 150
#> 2  20  30  15
指2 V2 200
#>3 V3 150
sds_long var sd
#>1 v120
#>2 V2 30
#>3 V3 15
sds_long%>%
内部连接(表示长)->
合二为一
#>连接,通过=“var”
合二为一
#>var标准差均值
#>1 V1 20 100
#>2 V2 30200
#>3 V31550

p你的数据是横向的;行应该是观察值,列应该是变量。用
df2修复它。我会试试这个,然后再给你回复。非常感谢你!