【发布时间】:2016-01-17 20:21:58
【问题描述】:
经过仔细搜索,我仍然无法解决我的问题,就是这样。
我有一个矩阵,里面有很多像这样的NAs:
matrix(c(NA,NA,1,NA,NA,-3, -1,NA,NA,NA,NA,NA, NA,2,NA,NA,NA,NA, NA,3,NA,NA,-2,5, NA,NA,NA,NA,NA,NA, NA,NA,NA,6,-7,NA),ncol=6,nrow = 6)
产生以下内容
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] NA -1 NA NA NA NA
[2,] NA NA 2 3 NA NA
[3,] 1 NA NA NA NA NA
[4,] NA NA NA NA NA 6
[5,] NA NA NA -2 NA -7
[6,] -3 NA NA 5 NA NA
我的目标是折叠矩阵以具有:1)向上移动所有值以摆脱NAs 所产生的行数; 2)相同的列数。在这种情况下,生成的矩阵将是 3X6,因为在任何情况下,每列的值都不超过 3 个。
这是我试图获得的矩阵:
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 1 -1 2 3 NA 6
[2,] -3 -1 2 -2 NA -7
[3,] 1 -1 2 5 NA 6
1) 具有单个值的列重复它; 2)具有两个值的列在第二次出现时具有第二个值,而当它们出现第三次时,它们再次采用第一个值(并最终为其他行保留它); 3)具有三个值的列每次都会更改它。包含所有NAs 的列可以保持不变。
一个完整的解决方案会很棒,但我很乐意获得有关如何进行此类复杂重组的提示。
【问题讨论】: