يمكن حفظ او تصدير البيانات في لغة البرمجة آر R بإستخدام بعض الدوال والتي تتضمن عدة خيارات تسمح بالتحكم في نوع وإعدادات الملف المخرج. في هذا المقال سوف نتناول اهم تلك الدوال والتي يمكن تلخيصها كالتالي:
اولاً: استخدام الدالة: write.table
وهي تسخدم لحفظ او تصدير البيانات الى ملف أكسل (csv) او ملف نصي (txt) كما يلي:
write.table(x, file, append, sep, row.names, col.names, fileEncoding)
حيث أن:
x | البيانات المراد حفظها، ويفضل أن تكون مصفوفة أو data frame. |
file | اسم الملف ويحوي امتداد الملف |
append | تحديد هل يتم إضافة البيانات لملف موجود او انشاء ملف جديد وحذف اي ملف بنفس الأسم وهذا الإفتراضي (append=FALSE). |
sep | الفاصل بين قيم الصف الواحد، الإفتراضي ” “. |
row.names | تحديد هل يتم كتابة اسماء الصفوف، حيث أن الإفتراض نعم (row.names=TRUE) |
col.names | تحديد هل يتم كتابة اسماء الأعمدة، حيث أن الإفتراض نعم (col.names=TRUE) |
fileEncoding | ترميز الملفات |
فمثلاً، نفرض أن لدينا البيانات التالية:
In: Names=c("Ali", "Mohammed","Turkey") Age=c(33,41,29) mydata=data.frame(Names,Age) mydata Out: Names Age 1 Ali 33 2 Mohammed 41 3 Turkey 29
لحفظ هذه البيانات في ملف csv يمكن استخدام الدالة:
In:
write.table(mydata,"myfile.csv", sep = ",", row.names = FALSE, col.names = TRUE)
ويمكن استبدال امتداد الملف csv بالإمتداد txt لحفط البيانات في ملف نصي.
كذلك يمكن استخدام الدالة التالية:
In:
write.csv(mydata,"myfile.csv")
ثانيا: استخدام الدالة write
وهي يمكن ان تستخدم لحفظ البيانات بصيغ مختلفة كما يلي:
write(x, file, ncolumns, append, sep)
حيث أن:
x | البيانات المراد حفظها، ويفضل أن تكون مصفوفة أو data frame. |
file | اسم الملف ويحوي امتداد الملف |
ncolumns | عدد الأعمدة لكتابة البيانات فيها. |
append | تحديد هل يتم إضافة البيانات لملف موجود او انشاء ملف جديد وحذف اي ملف بنفس الأسم وهذا الإفتراضي (append=FALSE). |
sep | الفاصل بين قيم الصف الواحد، الإفتراضي ” “. |
فمثلاً لحفظ البيانات السابقة في ملف json يمكن استخدام الكود التالي:
In:
library("jsonlite")
Jsonfile = toJSON(mydata)
write(Jsonfile, "myfile.json")
كيف يمكن استخدام دوال حفظ البيانات في حلقات التكرار (loops)؟
اولاً: في بعض الاحيان نحتاج لتحديث ملف البيانات خلال دورات حلقات التكرار لحفظ بعض النتائج. مثلاً يمكن استخدام الكود التالي:
In:
for (i in 1:3){
df=t(rnorm(3))
write.table(df,"myfile.csv",sep = ",",row.names = FALSE, col.names = FALSE, append = TRUE)
}
حيث تم تفعيل خيار append في الدالة.
ثانياً: حفط البيانات او النتائج خلال دورات حلقات التكرار في ملف جديد وبأسم مختلف. مثلاً يمكن استخدام الكود التالي:
In:
for (i in 1:3){
df=t(rnorm(3))
filename=paste("myfile",i,".csv")
write.table(df,filename,sep = ",",row.names = FALSE, col.names = FALSE, append = TRUE)
}
ملاحظة: يجب تحديد موقع حفظ الملف على الجهاز من خلال الدالة:
In:
setwd("Desktop")
شكراّ لك د. عبد العزيز .. المدونة جداَ مفيده , نفتقد مثل هذا المحتوى باللغة العربية