【问题标题】:Multidimensional array into data frame多维数组到数据框
【发布时间】:2017-04-11 23:02:54
【问题描述】:

R 中的以下问题对你们中的许多人来说似乎很容易,但由于我对此相对较新,如果你能帮助我,那将非常有帮助。我想写一个多维(3 维度)数组作为我可以更容易操作的数据框。

我正在处理 1891 年 1 月 1 日至 2015 年 1 月 12 日期间每月海表温度 (SST) 数据的 NetCDF 文件。从文件中提取 SST 变量(使用 ncdf4 包)会生成一个多维数组(经度 = 360,纬度 = 180,时间 = 1992)(基本上是全局地图图层,堆叠在时间向量上,也包括 NA 值 - 在陆地上温度)。

我想要的是一个数据框,其中:第一列是经度,第二个纬度,第三个时间,第四个 SST 值。我的问题是尺寸的长度不同,我看不出如何让 R 理解它需要正确地取消堆叠数据。

我想要的示例如下:

Longitude   Latitude    Time    SST
0,5         89.5     01/01/1891 1.25
0.5         89       01/01/1891 1.27
0.5         88.5     01/01/1891 1.28
…           …        …  …
1           89.5     01/01/1891 1.28
1           89       01/01/1891 1.29
1           88.5     01/01/1891 1.26
…           …        …  …
0.5         89.5     01/02/1891 1.26
0.5         89       01/02/1891 1.28
…           …        …  …

非常感谢您的时间和耐心!

【问题讨论】:

  • 试试library(reshape2); melt(yourarray)
  • 工作完美!!非常感谢。老实说,我不知道为什么我确信它不能那么容易地处理它,尽管我知道这个功能。 @akrun

标签: arrays r multidimensional-array dataframe netcdf


【解决方案1】:

我们可以使用melt

library(reshape2)
melt(arrayObj)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-14
    • 2018-10-31
    • 2021-12-31
    • 2017-09-11
    • 2016-12-07
    • 2011-01-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多