Skip to contents

Transforms a long (stacked) data frame into a list of wide data frames

Usage

yf_convert_to_wide(df_in)

Arguments

df_in

dataframe in the long format (probably the output of yf_get())

Value

A list with dataframes in the wide format (each element is a different column)

Examples


my_f <- system.file("extdata/example_data_yfR.rds", package = "yfR")
df_tickers <- readRDS(my_f)

print(df_tickers)
#> # A tibble: 1,077 × 10
#>    ticker ref_date   price_open price_…¹ price…² price…³ price…⁴ volume ret_ad…⁵
#>  * <chr>  <date>          <dbl>    <dbl>   <dbl>   <dbl>   <dbl>  <dbl>    <dbl>
#>  1 ^BVSP  2020-01-02     115652   118573  115649  118573  118573 5.16e6 NA      
#>  2 ^BVSP  2020-01-03     118564   118792  117341  117707  117707 6.83e6 -0.00730
#>  3 ^BVSP  2020-01-06     117707   117707  116269  116878  116878 6.57e6 -0.00704
#>  4 ^BVSP  2020-01-07     116872   117076  115965  116662  116662 4.85e6 -0.00185
#>  5 ^BVSP  2020-01-08     116667   117335  115693  116247  116247 5.91e6 -0.00356
#>  6 ^BVSP  2020-01-09     116248   116820  115411  115947  115947 5.95e6 -0.00258
#>  7 ^BVSP  2020-01-10     115948   116745  114952  115503  115503 4.78e6 -0.00383
#>  8 ^BVSP  2020-01-13     115503   117333  115503  117325  117325 5.69e6  0.0158 
#>  9 ^BVSP  2020-01-14     117325   117705  116610  117632  117632 5.36e6  0.00262
#> 10 ^BVSP  2020-01-15     117632   117632  116188  116414  116414 5.57e6 -0.0104 
#> # … with 1,067 more rows, 1 more variable: ret_closing_prices <dbl>, and
#> #   abbreviated variable names ¹​price_high, ²​price_low, ³​price_close,
#> #   ⁴​price_adjusted, ⁵​ret_adjusted_prices

l_wide <- yf_convert_to_wide(df_tickers)
l_wide
#> $price_open
#> # A tibble: 369 × 4
#>    ref_date   `^BVSP`    FB   MMM
#>    <date>       <dbl> <dbl> <dbl>
#>  1 2020-01-02  115652  207.  178.
#>  2 2020-01-03  118564  207.  177.
#>  3 2020-01-06  117707  207.  177.
#>  4 2020-01-07  116872  213.  178.
#>  5 2020-01-08  116667  213   178 
#>  6 2020-01-09  116248  218.  182.
#>  7 2020-01-10  115948  219.  182.
#>  8 2020-01-13  115503  220.  181.
#>  9 2020-01-14  117325  222.  181.
#> 10 2020-01-15  117632  221.  181.
#> # … with 359 more rows
#> 
#> $price_high
#> # A tibble: 369 × 4
#>    ref_date   `^BVSP`    FB   MMM
#>    <date>       <dbl> <dbl> <dbl>
#>  1 2020-01-02  118573  210.  180.
#>  2 2020-01-03  118792  210.  179.
#>  3 2020-01-06  117707  213.  179.
#>  4 2020-01-07  117076  215.  179.
#>  5 2020-01-08  117335  216.  182.
#>  6 2020-01-09  116820  218.  182.
#>  7 2020-01-10  116745  220.  182.
#>  8 2020-01-13  117333  222.  182.
#>  9 2020-01-14  117705  222.  183.
#> 10 2020-01-15  117632  222.  182.
#> # … with 359 more rows
#> 
#> $price_low
#> # A tibble: 369 × 4
#>    ref_date   `^BVSP`    FB   MMM
#>    <date>       <dbl> <dbl> <dbl>
#>  1 2020-01-02  115649  206.  177.
#>  2 2020-01-03  117341  207.  176.
#>  3 2020-01-06  116269  207.  176.
#>  4 2020-01-07  115965  212.  177.
#>  5 2020-01-08  115693  213.  178.
#>  6 2020-01-09  115411  216.  180.
#>  7 2020-01-10  114952  217.  180.
#>  8 2020-01-13  115503  219.  180.
#>  9 2020-01-14  116610  219.  180.
#> 10 2020-01-15  116188  220.  179.
#> # … with 359 more rows
#> 
#> $price_close
#> # A tibble: 369 × 4
#>    ref_date   `^BVSP`    FB   MMM
#>    <date>       <dbl> <dbl> <dbl>
#>  1 2020-01-02  118573  210.  180 
#>  2 2020-01-03  117707  209.  178.
#>  3 2020-01-06  116878  213.  179.
#>  4 2020-01-07  116662  213.  178.
#>  5 2020-01-08  116247  215.  181.
#>  6 2020-01-09  115947  218.  181.
#>  7 2020-01-10  115503  218.  180.
#>  8 2020-01-13  117325  222.  181.
#>  9 2020-01-14  117632  219.  181.
#> 10 2020-01-15  116414  221.  180.
#> # … with 359 more rows
#> 
#> $price_adjusted
#> # A tibble: 369 × 4
#>    ref_date   `^BVSP`    FB   MMM
#>    <date>       <dbl> <dbl> <dbl>
#>  1 2020-01-02  118573  210.  171.
#>  2 2020-01-03  117707  209.  169.
#>  3 2020-01-06  116878  213.  170.
#>  4 2020-01-07  116662  213.  169.
#>  5 2020-01-08  116247  215.  171.
#>  6 2020-01-09  115947  218.  172.
#>  7 2020-01-10  115503  218.  171.
#>  8 2020-01-13  117325  222.  172.
#>  9 2020-01-14  117632  219.  172.
#> 10 2020-01-15  116414  221.  171.
#> # … with 359 more rows
#> 
#> $volume
#> # A tibble: 369 × 4
#>    ref_date   `^BVSP`       FB     MMM
#>    <date>       <dbl>    <dbl>   <dbl>
#>  1 2020-01-02 5162700 12077100 3601700
#>  2 2020-01-03 6834500 11188400 2466900
#>  3 2020-01-06 6570000 17058900 1998000
#>  4 2020-01-07 4854100 14912400 2173000
#>  5 2020-01-08 5910500 13475000 2758300
#>  6 2020-01-09 5953500 12642800 2746300
#>  7 2020-01-10 4783400 12119400 2103800
#>  8 2020-01-13 5685100 14463400 2090800
#>  9 2020-01-14 5361700 13288900 2911200
#> 10 2020-01-15 5569400 10036500 2482200
#> # … with 359 more rows
#> 
#> $ret_adjusted_prices
#> # A tibble: 369 × 4
#>    ref_date    `^BVSP`       FB       MMM
#>    <date>        <dbl>    <dbl>     <dbl>
#>  1 2020-01-02 NA       NA       NA       
#>  2 2020-01-03 -0.00730 -0.00529 -0.00861 
#>  3 2020-01-06 -0.00704  0.0188   0.000953
#>  4 2020-01-07 -0.00185  0.00216 -0.00403 
#>  5 2020-01-08 -0.00356  0.0101   0.0153  
#>  6 2020-01-09 -0.00258  0.0143   0.00316 
#>  7 2020-01-10 -0.00383 -0.00110 -0.00403 
#>  8 2020-01-13  0.0158   0.0177   0.00249 
#>  9 2020-01-14  0.00262 -0.0128   0.00249 
#> 10 2020-01-15 -0.0104   0.00954 -0.00877 
#> # … with 359 more rows
#> 
#> $ret_closing_prices
#> # A tibble: 369 × 4
#>    ref_date    `^BVSP`       FB       MMM
#>    <date>        <dbl>    <dbl>     <dbl>
#>  1 2020-01-02 NA       NA       NA       
#>  2 2020-01-03 -0.00730 -0.00529 -0.00861 
#>  3 2020-01-06 -0.00704  0.0188   0.000953
#>  4 2020-01-07 -0.00185  0.00216 -0.00403 
#>  5 2020-01-08 -0.00356  0.0101   0.0153  
#>  6 2020-01-09 -0.00258  0.0143   0.00316 
#>  7 2020-01-10 -0.00383 -0.00110 -0.00403 
#>  8 2020-01-13  0.0158   0.0177   0.00249 
#>  9 2020-01-14  0.00262 -0.0128   0.00249 
#> 10 2020-01-15 -0.0104   0.00954 -0.00877 
#> # … with 359 more rows
#>