如何读取 R 中的 .data 格式?

How to read .data format in R?

我需要在 R 中读取此数据集 https://psl.noaa.gov/data/correlation/tsa.data

我试过了:

TSA <- read.table("https://psl.noaa.gov/data/correlation/tsa.data", fileEncoding="UTF-16", dec=";")

在此数据集中,每一列代表从一月到十二月(从左到右)的月份,每一行代表年份。

我需要从中构建时间序列数据框,以便分析数据。

我想如果我可以旋转 table 来生成这样的数据帧 (tsibble),那会是多么理想:

YearMonth    TSA
1948 jan   -0.22
1948 feb   -0.12
1948 mar    0.04
1948 may   -0.21
 ...        ...
2021 sep    0.55 

因为我在 R 中阅读这种格式有困难,我想我会在这里得到很好的帮助建议。

如果你愿意使用tidyverse,你可以试试这样的方法。请注意,我使用 skip = 1 跳过第一行,使用 n_max = 74 跳过最后两行。这可能需要针对其他数据集进行调整。

library(tidyverse)

read_table("https://psl.noaa.gov/data/correlation/tsa.data",
           skip = 1, 
           n_max = 74,
           col_names = FALSE) %>%
  set_names(c('year', month.abb)) %>%
  pivot_longer(-year, 
               names_to = 'month',
               values_to = 'TSA')
#> 
#> # A tibble: 888 x 3
#>     year month   TSA
#>    <dbl> <chr> <dbl>
#>  1  1948 Jan   -0.22
#>  2  1948 Feb   -0.12
#>  3  1948 Mar    0.04
#>  4  1948 Apr   -0.21
#>  5  1948 May   -0.4 
#>  6  1948 Jun   -0.64
#>  7  1948 Jul   -0.4 
#>  8  1948 Aug   -0.53
#>  9  1948 Sep   -0.41
#> 10  1948 Oct   -0.42
#> # ... with 878 more rows

reprex package (v2.0.0)

于 2021-10-19 创建