【发布时间】:2015-11-03 03:29:32
【问题描述】:
我想在矩阵上应用滚动窗口模式更新。假设我有一个由零组成的矩阵,如下所示:
mat <- matrix(c(0,1,1,0,1,1,0,0,1,1,1,0,1,0,0,0),nrow=4)
0 1 1 1
1 1 1 0
1 0 1 0
0 0 0 0
我想一次扫描矩阵的每一行 2 个值,并根据这组规则创建一个标签矩阵:
0 0 - then label as A
0 1 - then label as B
1 0 - then label as B
1 1 - then label as C
上述矩阵的期望输出是:
(出现NA 值是因为第一个值之前没有值)
NA B C C
NA C C B
NA B B B
NA A A A
我正在尝试在R 中实现这一点。有没有办法使用其中一种应用方法来做到这一点?或者是否有一种快速的方法将这些数据存储为 data.frame 并使用 dplyr 或 data.table 等包进行处理?目前,我将其作为for 循环处理(当然,这非常慢)。
【问题讨论】:
-
感谢@Frank 的评论。今后将牢记这一点。