【发布时间】:2015-05-08 05:10:07
【问题描述】:
我正在处理一个包含大量 NA 的矩阵。我想在一个新矩阵中记录每个 NA 序列的长度。
下面的例子应该更简单。
#Generating a random 5x5 population matrix with 15 NA
M=matrix(sample(1:9,25,T),5)
M[sample(1:length(M),15,F)]=NA
dimnames(M)=list(paste(rep("City",dim(M)[1]),1:dim(M)[1],sep=""),paste(rep("Year",dim(M)[2]),1:dim(M)[2],sep=""))
M
Year1 Year2 Year3 Year4 Year5
City1 2 NA NA NA NA
City2 NA NA NA 6 8
City3 1 NA NA 6 NA
City4 NA 5 NA NA 1
City5 8 NA 1 NA 2
所需的输出如下。例如4 4 4 4 表示连续4个NA的序列。
Year1 Year2 Year3 Year4 Year5
City1 0 4 4 4 4
City2 3 3 3 0 0
City3 0 2 2 0 1
City4 1 0 2 2 0
City5 0 1 0 1 0
你知道我该怎么做吗?
【问题讨论】:
-
不要忘记你的矩阵“R”将被“字符”类型的对象填充。
-
在许多方面,实际上可能更适合存储第二个矩阵/一组索引来存储缺失值的位置/类型。也许作为
attribute到M。 -
好的。所以你完全改变了原来的帖子。因此,以下答案现在完全不在主题范围内。
-
我对这个问题和编辑有点困惑。最好让原始问题保持不变并接受最合适的答案,无论是否适合您的最终目的并提出新的问题。顺便说一句,我猜你会从包“zoo”中找到
na.approx,并在 SO 上搜索“插值/估算缺失值”这样的搜索很有帮助。 -
很抱歉给您带来了困惑。我将用我最初的问题再次编辑我的帖子,并在不同的帖子中提出新问题。