Saya mengalami masalah saat melakukan beberapa analisis dengan R.
Saya memiliki kerangka data seperti ini:
Name | Group | Count
Person 1 | A | 3
Person 2 | A | 1
Person 3 | A | 0
Person 1 | B | 5
Person 2 | B | 0
Person 3 | B | 1
Person 1 | C | 1
Dan saya perlu "mengembangkan" itu (tidak yakin apakah istilah yang tepat) menjadi seperti ini:
Person 1 | A
Person 1 | A
Person 1 | A
Person 2 | A
Person 1 | B
Person 1 | B
dll.
Jadi dibutuhkan nilai pasangan Person 1 dan A (dalam contoh ini, 3) dan membuat tiga baris dengan Person 1 dan A dan melakukannya untuk setiap Orang - Grup-kombinasi. Tidak dapat menemukan kata-kata bagus untuk pencarian online.
reshape()
fungsinyareshape2
paket dalam R. Ini mungkin juga membantu untukdput
2 contoh kerangka data: satu dengan input dan satu dengan output.Jawaban:
Meskipun ini adalah paket yang sangat berguna, saya pikir membentuk kembali terlalu banyak dalam hal ini, perwakilan dapat melakukan pekerjaan.
Berikut adalah beberapa contoh data:
Sekarang, untuk "memperluas" itu:
Saya tidak dapat menemukan cara untuk bekerja secara langsung pada kerangka data dari atas kepala saya jadi saya bekerja pada masing-masing variabel secara terpisah dan kemudian memasang kembali mereka, yang agak jelek tapi harus OK selama Anda berhati-hati selalu menggunakan variabel yang sama untuk jumlah.
sumber
df[rep(seq_len(nrow(df)), df$count), 1:2]
:?Anda dapat menggunakan fungsi yang tidak dapat dijalankan dari paket membentuk kembali.
Diberikan df di atas (oleh @ Gaël Laurans)
sumber
untable
tidak persis apa yang saya sebutkan dalam komentar saya :-) Terima kasih telah mengingatkan saya tentang fungsi itu!Dan
uncount
mulaitidyr
sekarang memberikan hasil yang sama seperti di atas.sumber