哪些列可以与最少的NA配对?

时间:2014-12-07 02:38:12

标签: r

我测量了一些化学物质的几个属性,但我没有每种化学物质的每个属性的值。

我想知道哪些测试可以用作散点图的X和Y尺寸,这样我的数据点数就会最多。

如果我的测试看起来像这样:

> mydata
      testA testB testC testD
chem1   0.6   0.2    NA   0.8
chem2   0.1    NA   0.9    NA
chem3   0.3   0.4   0.5    NA

我希望看到这样的表,表示testA与testB,或者testA与testC将具有“最”数据点。

> mycounts
      testA testB testC testD
testA    NA    NA    NA    NA
testB     2    NA    NA    NA
testC     2     1    NA    NA
testD     1     1     0    NA

我对reshape,data.table和plyr有一点经验,但我无法想象如何做这样的事情。

1 个答案:

答案 0 :(得分:2)

我想你想要像

这样的东西
x <- !is.na(as.matrix(mydata))
z <- crossprod(x,x)
z

给出了

      testA testB testC testD
testA     3     2     2     1
testB     2     2     1     1
testC     2     1     2     0
testD     1     1     0     1

如果你真的需要将上层诊断转为NA,你可以

z[upper.tri(z, diag=T)]<-NA
z

获取

      testA testB testC testD
testA    NA    NA    NA    NA
testB     2    NA    NA    NA
testC     2     1    NA    NA
testD     1     1     0    NA