2 回答

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超8個(gè)贊
使用table和crossprod:
out <- crossprod(table(houses, animals))
out[lower.tri(out, diag=TRUE)] <- NA
out
# animals
# animals cat dog rat snake spider
# cat NA 1 2 1 1
# dog NA NA 0 0 0
# rat NA NA NA 1 1
# snake NA NA NA NA 1
# spider NA NA NA NA NA
由于輸出是a,matrix您可以NA直接在print以下位置禁止打印值:
print(out,na.print="")
# animals
# animals cat dog rat snake spider
# cat 1 2 1 1
# dog 0 0 0
# rat 1 1
# snake 1
# spider

TA貢獻(xiàn)1900條經(jīng)驗(yàn) 獲得超5個(gè)贊
只需添加一個(gè)稀疏的替代方案,以防萬(wàn)一在制表期間可以減少任何內(nèi)存占用:Matrix::crossprod(xtabs(~ houses + animals, sparse = TRUE))
- 2 回答
- 0 關(guān)注
- 579 瀏覽
添加回答
舉報(bào)