在R中重新安排一张桌子

时间:2018-01-18 21:28:45

标签: r sorting reformat

我正在读取R中的.dat文件,该文件有10,800行和6列(如果你想看一下,我会留给你link to the file

为了阅读它我用这个:

library(dplyr)
library(readr)

tryon <- read.table("F:/1981_01_NAM.dat", header=FALSE)

一旦我有了那张桌子,我想重新安排它制作一个有360行和180列的数组或矩阵。 例如,我有这个:

   [1]   [2]  [3]

[1]1     2     3
[2]4    5      6
[3]7    8      9

我想要这个:

   [1]   [2]  [3]  [4]   [5]  [6]

[1]1     2     3   4   5   6
[3]7    8      9   ...

因此,通过我使用的一些例子:

lon = 360
lat = 180

output2 <- matrix(unlist(tryon), nrow = lon, ncol= lat, byrow = TRUE)

但它没有做我想要的,如果你使用我上面链接的数据,重新安排位置[1,35]后的值应该是-0.00367983,但我得到了0.

有什么想法吗?谢谢。

1 个答案:

答案 0 :(得分:0)

如果你只是尝试使用unlist(tyron),你会发现它没有做任何事情,因为矩阵不是列表。因此,您必须将其转换为列表,然后unlist将其有效地转换为单个向量。 然后您可以使用矩阵函数将其转换回矩阵。

is.list(mat)
FALSE

尝试:

output2 <- matrix(unlist(as.list(tyron)), nrow = lon, ncol = lat, byrow = TRUE)