0
間の対比較を行う私が行列を持っていると私はすべての可能な組み合わせ(一意の)間の対比較をしたい:は、すべての可能な組み合わせ
data.frame
A B C D
a 2 0 2 50
b 1 3 1 2
c 4 6 7 50
d 1 3 8 2
... ... ... ... ...
library(utils)
combined <- combn(samples,2,simplify = FALSE)
combined
[[1]]
[1] "A" "B"
[[2]]
[1] "A" "C"
...
par(mfrow=c(2,2))
for(i in 1:length(combined)){
cor <- sprintf(cor(dat$combined[[i]][1],dat$combined[[i]] [2]),fmt='%#.2g',method="spearman")
smoothScatter (
dat$combined[[i]][1],
dat$combined[[i]][2],
main=paste0("Spearman= ",cor),
)
}
dev.off()
しかし、私は次のエラーを取得します:
Error in cor(dat$combined[[i]][1], dat$combined[[i]][2]) :
supply both 'x' and 'y' or a matrix-like 'x'
あなたは 'matrix'と言っていますが、データフレームのように行と列にアクセスしようとします。 'xm = matrix(1:4、2); xdf = as.data.frame(xm); 'xm [[1]]とxdf [[1]]の違いを見てください。 – Gregor
申し訳ありませんが、Data.frame – user6013305
問題を見つけるまで、 'i'を1に設定し、あなたのループの中で小さくて小さなコードを実行することをお勧めします。たとえば、 'dat $ combined [[i]] [1]'は 'dat'が' combined'という名前の列を持つデータフレームであるように見えます。最初のリストの最初の要素が必要な '[[' 'を使って列の要素にアクセスします。あなたが見せてくれる「dat」のようには聞こえません。 – Gregor