【问题标题】:Re-arrange a table in R在 R 中重新排列表格
【发布时间】:2018-01-19 05:54:38
【问题描述】:

我正在阅读 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。

有什么想法吗?谢谢。

【问题讨论】:

  • 您需要包含t() 函数。试试matrix(t(unlist(tyron)),lon,byrow=T)

标签: r sorting reformat


【解决方案1】:

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

is.list(mat)
FALSE

尝试:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-09
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    相关资源
    最近更新 更多