Mencoba memecah bingkai data berdasarkan subjek dalam satu perintah [duplikat]

Katakanlah saya memiliki bingkai data besar dalam format panjang, dengan setiap subjek menempati 5 baris, dengan total 5 subjek.

x=c(1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,4,4,4,4,4,5,5,5,5,5)
df=data.frame(x, 1:25)

Sekarang saya ingin memisahkan ini menjadi 5 bingkai data terpisah, satu untuk setiap subjek. Saya tahu saya bisa melakukan ini:

s01=df[df$x==1,]

5 kali, tapi saya ingin membuat kelima bingkai data sekaligus, menggunakan satu perintah. Apakah ada cara untuk melakukan ini (misalnya dengan for loop atau sesuatu seperti lapply)? Saya mencoba dengan for loop tetapi tidak yakin bagaimana cara menghasilkan 5 objek terpisah dengan nama berbeda.


person cmpsych93    schedule 04.07.2016    source sumber


Jawaban (1)


Anda cukup melakukan:

result <- split(df, df$x)

Ini akan mengembalikan daftar bingkai data yang berbeda menurut kolom x. Misalnya, Anda dapat mengambil bingkai data pertama dengan

result[[1]]
person Zheyuan Li    schedule 04.07.2016