亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將表轉換為數據框

如何將表轉換為數據框

MYYA 2019-10-16 10:54:04
我在R中有一張桌子有str()這個: table [1:3, 1:4] 0.166 0.319 0.457 0.261 0.248 ... - attr(*, "dimnames")=List of 2  ..$ x: chr [1:3] "Metro >=1 million" "Metro <1 million" "Non-Metro Counties"  ..$ y: chr [1:4] "q1" "q2" "q3" "q4"當我打印時看起來像這樣:                    yx                           q1        q2        q3        q4  Metro >=1 million  0.1663567 0.2612212 0.2670441 0.3053781  Metro <1 million   0.3192857 0.2480012 0.2341030 0.1986102  Non-Metro Counties 0.4570341 0.2044960 0.2121102 0.1263597我想擺脫x和y并將其轉換成數據幀,看起來完全一樣,上面的(三排,四列),但沒有x或y。如果我使用as.data.frame(mytable),我會得到這個:                    x  y      Freq1   Metro >=1 million q1 0.16635672    Metro <1 million q1 0.31928573  Non-Metro Counties q1 0.45703414   Metro >=1 million q2 0.26122125    Metro <1 million q2 0.24800126  Non-Metro Counties q2 0.20449607   Metro >=1 million q3 0.26704418    Metro <1 million q3 0.23410309  Non-Metro Counties q3 0.212110210  Metro >=1 million q4 0.305378111   Metro <1 million q4 0.198610212 Non-Metro Counties q4 0.1263597我可能從根本上不了解表與數據幀之間的關系。
查看完整描述

3 回答

?
Qyouu

TA貢獻1786條經驗 獲得超11個贊

我已經知道了:


as.data.frame.matrix(mytable) 

滿足我的需要-顯然,該表需要以某種方式轉換為矩陣,以便適當地轉換為數據幀。我在Computational Ecology博客上發現了有關列聯表as.data.frame.matrix()函數的更多詳細信息。


查看完整回答
反對 回復 2019-10-16
?
PIPIONE

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會將其添加到它們的前面。


查看完整回答
反對 回復 2019-10-16
?
www說

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


查看完整回答
反對 回復 2019-10-16
  • 3 回答
  • 0 關注
  • 637 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號