สมมติว่าฉันมี data frame ขนาดใหญ่ในรูปแบบยาว โดยแต่ละวิชามี 5 แถว รวมทั้งหมด 5 วิชา
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)
ตอนนี้ฉันต้องการแยกสิ่งนี้ออกเป็น 5 กรอบข้อมูลแยกกัน หนึ่งเฟรมสำหรับแต่ละวิชา ฉันรู้ว่าฉันสามารถทำได้:
s01=df[df$x==1,]
5 ครั้ง แต่ฉันต้องการสร้างเฟรมข้อมูลทั้งห้าเฟรมในคราวเดียวโดยใช้คำสั่งเดียว มีวิธีการทำเช่นนี้ (เช่น for loop หรือบางอย่างเช่น lapply) หรือไม่? ฉันลองใช้ for loop แต่ไม่แน่ใจว่าจะทำให้มันส่งออกวัตถุ 5 ชิ้นแยกกันด้วยชื่อที่แตกต่างกันได้อย่างไร