Sau nhiều lần tính toán cho các file dữ liệu khác nhau, mỗi lần thực hiện thao tác, tôi lại thay đổi tên file và lặp lại các bước tương tự. Đành rằng tôi đã gói gọn các bước vào một file lệnh .R nhưng điều này cũng khá mất thời gian nếu như kết quả phải sửa đi sửa lại nhiều lần mà chưa được duyệt (vì tôi phải trình kết quả cho supervisor và thảo luận để tìm ra giải pháp). Vì thế, tôi mày mò tìm cách để xuất các giá trị mỗi lần tính toán cho một file dữ liệu. Và chỉ cần một vòng lặp để duyệt hết tất cả các file cần tính toán đến.
Tôi vẫn biết rằng R cung cấp cách hàm để đọc và xuất dữ liệu ra nhiều định dạng khác nhau. Nhưng mày mò một hồi với phương thức write.csv và write, tôi vẫn chưa thành công. Sau một hồi tìm hiểu, tôi đã nắm được nguyên tắc và ghi lại ở đây.
Bài toán như sau:
Tính toán các thuộc tính average degree (ad), diameter (dia), local clustering coefficient (lcf) và global clustering coefficient (gcf) cho mỗi mạng muscle, liver, yeast, fpcBMC, aracell, và aracell2.
Như vậy, ở đây chúng ta cần thực hiện 6 lần, mỗi lần như thế phải ghi lại kết quả của 4 biến ad, dia, lcf và gcf. Sau 6 lần thực hiện, kết quả cuối cùng là một bảng tổng hợp 4 thuộc tính của 6 mạng.
Code:
df<-NULL
for(r in 1:6)# tính toán kết quả và lưu vào 4 biến
rbind(df, data.frame(ad=r,dia=r,lcf=0,gcf=0)) ->dfprint(df)
write.table(df,file=”Myfile.csv”,sep=”,”,row.names=F)
Bằng cách chạy đoạn mã trên, tôi đã giải quyết công việc nhanh chóng và có thể thực hiện cho nhiều mạng khác.