【问题标题】:How to prepare data for multi barplot on R? (rearrange, merge and change the columns into a new table ready for plotting)如何为 R 上的多条形图准备数据? (重新排列、合并并将列更改为准备绘图的新表)
【发布时间】:2020-04-05 13:47:43
【问题描述】:

我是一个新手,很难绘制多条形图/绘图。提前为使用奇怪/错误的术语道歉。 我正在为艺术数据集提供资金。我当前的表格如下所示(此示例的预算数字)

Category   2010/11   2011/12   2012/13   ...   Total
Music      10000     900000000 8900000         98000000000
Dance      0         8759432   0               789999999
Theatre    7800000   23535352  32424           94832000
  1. 列表项

我想创建一个新数据集,其中包含如下所示的所有数据外观(某些东西)。

Category      Year       Budget
Music         2010/11    10000
Dance         2011/12    8759432
Theatre       2011/12    23535352

这样我就可以用它来绘制一个多条形图/图表,显示不同年份不同类别的资金分配。

谢谢。

【问题讨论】:

  • 欢迎来到 SO。请考虑阅读这个关于如何产生一个很好的 R 问题的线程。您可以申请dput() 以便我们获取您的数据样本吗? stackoverflow.com/questions/5963269/…

标签: r dataframe multiple-columns


【解决方案1】:

您可以通过tidyr 包中的pivot_longer 转换数据集。我还添加了一个mutate 来获得正确的年份标签。试试这个:

library(dplyr)
library(tidyr)

# Example data

df <- read.table(text="Category   2010/11   2011/12   2012/13   Total
Music      10000     900000000 8900000         98000000000
Dance      0         8759432   0               789999999
Theatre    7800000   23535352  32424           94832000", header = TRUE)
df
#>   Category X2010.11  X2011.12 X2012.13      Total
#> 1    Music    10000 900000000  8900000 9.8000e+10
#> 2    Dance        0   8759432        0 7.9000e+08
#> 3  Theatre  7800000  23535352    32424 9.4832e+07

# Tidy the dataset

df_tidy <- df %>%
  # drop Total. If you need that column: remove the code line
  select(-Total) %>% 
  # Convert to long
  pivot_longer(-Category, names_to = "Year", values_to = "Budget") %>% 
  # Get the labels for the Year right   
  mutate(Year = gsub("^X", "", Year),
         Year = gsub("\\.", "/", Year))
df_tidy
#> # A tibble: 9 x 3
#>   Category Year       Budget
#>   <fct>    <chr>       <int>
#> 1 Music    2010/11     10000
#> 2 Music    2011/12 900000000
#> 3 Music    2012/13   8900000
#> 4 Dance    2010/11         0
#> 5 Dance    2011/12   8759432
#> 6 Dance    2012/13         0
#> 7 Theatre  2010/11   7800000
#> 8 Theatre  2011/12  23535352
#> 9 Theatre  2012/13     32424

reprex package (v0.3.0) 于 2020-04-05 创建

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多