我有一个类似于下面的大数据矩阵(“trial.matrix”)。
[,1] [,2]
[1,] 3 NA
[2,] 5 NA
[3,] 7 NA
[4,] 9 10
[5,] 11 12
[6,] 13 14
我的问题要求我打乱这个矩阵的不同版本的一些行,然后从打乱的差分矩阵中重建一个矩阵。当我申请 diff(trial.matrix) 我得到:
[,1] [,2]
[1,] 2 NA
[2,] 2 NA
[3,] 2 NA
[4,] 2 2
[5,] 2 2
要重建原始数据帧,我需要使用 cumsum() 或 diffinv(),例如:
new.df <- diffinv(diff(trial.matrix), xi = t(c(3, 10)))
但这给出了:
[,1] [,2]
[1,] 3 10
[2,] 5 NA
[3,] 7 NA
[4,] 9 NA
[5,] 11 NA
[6,] 13 NA
显然,第 2 列的起始值(“xi”)必须从第 3 行(或第 4 行?)开始应用。我在实数矩阵中有许多列,有些带有前导 NA,有些没有。我需要在重建中保留领先的 NA。我想不出一种简单的方法来以简单的方式重建差分矩阵中具有 NA 的列。
(对于每一列,我可以构造两个向量,一个包含第一个非 NA 行,另一个包含第一个 NA 值,但无法找到使用这些向量的直接方法。)
建议表示赞赏。