我测量了一些化学物质的几个属性,但我没有每种化学物质的每个属性的值。
我想知道哪些测试可以用作散点图的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有一点经验,但我无法想象如何做这样的事情。
答案 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