0

我正在处理 tsibbledata 包中的 gafa_stock 数据框。我想找到数据框中四只股票中每只股票的最高收盘价。由于数据框有四只股票,我想得到一个有四行的表格,每行给我股票的最大值。我在这里使用说明:提取数据帧中每个组内的最大值并编写以下代码:

gafa_stock %>%
   group_by(Symbol) %>%
   summarise(maximum = max(Close))

gafa_stock 数据框看起来像这样

在此处输入图像描述

str(gafa_stock) 有这些结果

str(gafa_stock)
tsibble [5,032 x 8] (S3: tbl_ts/tbl_df/tbl/data.frame)
$ Symbol   : chr [1:5032] "AAPL" "AAPL" "AAPL" "AAPL" ...
$ Date     : Date[1:5032], format: "2014-01-02" "2014-01-03" "2014-01-06" ...
$ Open     : num [1:5032] 79.4 79 76.8 77.8 77 ...
$ High     : num [1:5032] 79.6 79.1 78.1 78 77.9 ...
$ Low      : num [1:5032] 78.9 77.2 76.2 76.8 77 ...
$ Close    : num [1:5032] 79 77.3 77.7 77.1 77.6 ...
$ Adj_Close: num [1:5032] 67 65.5 65.9 65.4 65.8 ...
$ Volume   : num [1:5032] 5.87e+07 9.81e+07 1.03e+08 7.93e+07 6.46e+07 ...
- attr(*, "key")= tibble [4 x 2] (S3: tbl_df/tbl/data.frame)
..$ Symbol: chr [1:4] "AAPL" "AMZN" "FB" "GOOG"
..$ .rows : list<int> [1:4] 
.. ..$ : int [1:1258] 1 2 3 4 5 6 7 8 9 10 ...
.. ..$ : int [1:1258] 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 ...
.. ..$ : int [1:1258] 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 ...
.. ..$ : int [1:1258] 3775 3776 3777 3778 3779 3780 3781 3782 3783 3784 ...
.. ..@ ptype: int(0) 
..- attr(*, ".drop")= logi TRUE
- attr(*, "index")= chr "Date"
..- attr(*, "ordered")= logi TRUE
- attr(*, "index2")= chr "Date"
- attr(*, "interval")= interval [1:1] 1D
..@ .regular: logi TRUE

而且,我的最终结果看起来像这样

在此处输入图像描述

此命令创建一个包含所有 5032 行和三列的表 - 代码、日期和标记为最大值的收盘价。我究竟做错了什么?这是因为 ts 或 tsibble 数据帧的一些特殊特性吗?

4

1 回答 1

1

tbl_ts如果版本tsibble< 0.9.3 ,我们可以先转换为 tibble,因为还有其他类属性

gafa_stock %>%
    as_tibble %>%
     group_by(Symbol) %>%
       summarise(maximum = max(Close), .groups = 'drop')

-输出

# A tibble: 4 x 2
#  Symbol maximum
#  <chr>    <dbl>
#1 AAPL      232.
#2 AMZN     2040.
#3 FB        218.
#4 GOOG     1268.

在较新的版本(0.9.3)中,它无需转换即可工作

gafa_stock %>%
    group_by(Symbol) %>%
    summarise(maximum = max(Close), .groups = 'drop')
# A tibble: 4 x 2
#  Symbol maximum
#  <chr>    <dbl>
#1 AAPL      232.
#2 AMZN     2040.
#3 FB        218.
#4 GOOG     1268.

根据tsibble( 0.9.2)

每个观察应由有效 tsibble 中的索引和键唯一标识。

这里的属性index是“日期”

attr(gafa_stock, "index")[1]
#[1] "Date"
于 2021-02-06T00:11:24.020 回答