Pertanyaan Bagaimana cara menambahkan jumlah total ke tabel dan mendapatkan proporsi untuk setiap sel dalam R


Saya mencoba mendapatkan proporsi untuk setiap sel dengan membagi setiap baris dengan jumlah baris, tetapi R memberi saya sebuah Kesalahan yang mengatakan,

Kesalahan dalam data.tabel $ Negara: Operator $ tidak valid untuk vektor atom

Bagaimana saya bisa memperbaiki ini? Juga, bagaimana cara menambahkan nilai jumlah total untuk seluruh kolom dan baris ke data.tabel? Saya mendapatkan nilai ini ketika saya menjalankan addmargins(data.table), tapi saya ingin melampirkan jumlah ke dataframe saya.


Ini kode saya:

x = c(40,50,30,30,50)                
y = c(40,20,30,40,45)                              
data.table = rbind(x,y)   
data.table
dimnames(data.table)=list("Country"=c("England","Germany"),"Score"=c("Q-Score","T-score","X-score","Y-score","Z-score"))
addmargins(data.table)
table(data.table$Country,data.table$Score/rowSums(table(data.table&Country,data.table$Score)))

5
2017-10-30 03:24


asal


Jawaban:


Output dari panggilan ke table adalah objek kelas table. Ini pada dasarnya adalah sebuah array. Anda tidak dapat menggunakan $ referensi array atau vektor atom. (Oleh karena itu kesalahan).

Jika Anda ingin menetapkan hasil addmargins(data.table) ke suatu objek, maka Anda lebih bebas untuk melakukannya

margin_table <- addmargins(data.table)

Sepertinya Anda ingin kemudian membuat tabel dari proporsi relatif.

prop.table berguna untuk ini.

 prop.table(margin_table)

         Score
Country      Q-Score    T-score X-score    Y-score    Z-score       Sum
  England 0.02666667 0.03333333    0.02 0.02000000 0.03333333 0.1333333
  Germany 0.02666667 0.01333333    0.02 0.02666667 0.03000000 0.1166667
  Sum     0.05333333 0.04666667    0.04 0.04666667 0.06333333 0.2500000

Anda juga bisa berlari prop.table pada sumber asli untuk mendapatkan proporsi baris (1 = baris, 2 = kolom)

 prop.table(data.table, margins = 1)
      Score
Country     Q-Score   T-score   X-score   Y-score   Z-score
  England 0.2000000 0.2500000 0.1500000 0.1500000 0.2500000
  Germany 0.2285714 0.1142857 0.1714286 0.2285714 0.2571429

File bantuan untuk table (diakses oleh ?table atau help('table') rinci dan berisi tautan ke file bantuan untuk prop.table dan addmargins!


10
2017-10-30 03:33