【发布时间】:2018-09-01 11:50:50
【问题描述】:
我有一个非常基本的循环问题:
我有一个矩阵 (365x20)。所以二十年来我每天都有降雨数据。
我需要对矩阵进行切片以便进行接下来的分析步骤,我这样做是这样的:
year1 <- as.vector(Rainfall_data$year1)
year2 <- as.vector(Rainfall_data$year2)
...
year20 <- as.vector(Rainfall_data$year20)
这给了我总共 20 个单个 1x365 向量。
现在,我想对转置的 Rainfall 数据执行相同的操作,以获得包含所有 20 年同一天的值的向量。因为这意味着做
as.vector(t_Rainfall_data$day1-365)
我想写一个循环。这些列称为第 1 天到第 365 天。t_Rainfall_data 将是转置矩阵。主要目的是获得总共 365 个单个 1x20 向量。
我尝试了几种方法,但都失败了。
【问题讨论】:
-
您不需要转置似乎是
data.frame,而不是matrix。试试lapply(seq_len(nrow(Rainfall_data)), function(i) Rainfall_data[i, ])。这将产生一个list的向量。 -
您无需将数据从数据框中切出即可进行下一步分析。告诉我们下一步是什么,我们将向您展示如何在不复制/粘贴/编辑代码的情况下轻松完成。循环遍历数据框或矩阵的行/列很容易。很难循环遍历环境中的单个对象。
-
有什么特别的原因让您觉得需要获取一个非常有用的数据框并将其分割成这么多孤立的对象吗?