3 回答

TA貢獻1786條經驗 獲得超11個贊
我已經知道了:
as.data.frame.matrix(mytable)
滿足我的需要-顯然,該表需要以某種方式轉換為矩陣,以便適當地轉換為數據幀。我在Computational Ecology博客上發現了有關列聯表as.data.frame.matrix()函數的更多詳細信息。

TA貢獻1829條經驗 獲得超9個贊
盡管在這種情況下結果會有所不同,因為列名是數字,但我使用的另一種方法是data.frame(rbind(mytable))。使用@XX中的示例:
> freq_t = table(cyl = mtcars$cyl, gear = mtcars$gear)
> freq_t
gear
cyl 3 4 5
4 1 8 2
6 2 4 1
8 12 0 2
> data.frame(rbind(freq_t))
X3 X4 X5
4 1 8 2
6 2 4 1
8 12 0 2
如果列名不是以數字開頭,則不X會將其添加到它們的前面。

TA貢獻1775條經驗 獲得超8個贊
簡短的答案:使用as.data.frame.matrix(mytable)@Victor Van Hee建議的。
長答案:as.data.frame(mytable)可能無法在table()函數生成的列聯表上使用,即使is.matrix(your_table)return TRUE。它仍然會將您的表融為一體factor1 factor2 factori counts。
例:
> freq_t = table(cyl = mtcars$cyl, gear = mtcars$gear)
> freq_t
gear
cyl 3 4 5
4 1 8 2
6 2 4 1
8 12 0 2
> is.matrix(freq_t)
[1] TRUE
> as.data.frame(freq_t)
cyl gear Freq
1 4 3 1
2 6 3 2
3 8 3 12
4 4 4 8
5 6 4 4
6 8 4 0
7 4 5 2
8 6 5 1
9 8 5 2
> as.data.frame.matrix(freq_t)
3 4 5
4 1 8 2
6 2 4 1
8 12 0 2
- 3 回答
- 0 關注
- 637 瀏覽
添加回答
舉報