在 R 中重新排列表



我正在读取 R 中的.dat文件,该文件有 10,800 行和 6 列(如果您想查看,我会给您留下该文件的链接)

为了阅读它,我使用这个:

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。

有什么想法吗?谢谢。

如果你只是尝试使用unlist(tyron),你会发现它什么也没做,因为矩阵不是列表。所以你必须把它变成一个列表,然后unlist它,有效地把它变成一个单一的向量。然后,您可以使用矩阵函数将其转换回矩阵。

is.list(mat)
FALSE

尝试:

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

相关内容

  • 没有找到相关文章

最新更新