كيفية تصدير البيانات من R إلى CSV و Excel

⚡ ملخص ذكي

يشمل تصدير البيانات من R كتابة إطار بيانات إلى تنسيقات CSV وExcel وSPSS وSAS وSTATA وتنسيقات R الأصلية، ثم رفع الملف نفسه إلى Google Drive or Dropboxتتبع كل عملية تصدير نمطًا واحدًا: دالة، وإطار بيانات، ومسار وجهة.

  • 📁 الوجهة أولاً: تقوم الدالة getwd() بالإبلاغ عن دليل العمل، ويتم كتابة أي اسم ملف نسبي هناك ما لم يتم توفير مسار كامل.
  • 📄 تصدير CSV: يُعد write.csv(df, “file.csv”) الخيار العام، ويقوم write.csv2() بالتبديل إلى فواصل منقوطة.
  • 📗 تصدير إلى ملف إكسل: تتطلب الدالة write.xlsx() من حزمة xlsx وجودًا يعمل Java التركيب على الجهاز.
  • 🔄 البرامج الإحصائية: تقوم حزمة haven بكتابة ملفات SPSS و SAS و STATA باستخدام write_sav() و write_sas() و write_dta().
  • 💾 التنسيقات الأصلية: تقوم الدالة saveRDS() بتخزين كائن واحد، بينما تقوم الدالة save() بتخزين عدة كائنات، وكلاهما يحافظ على مستويات العوامل والخصائص بدقة.
  • ☁️ التحميل السحابي: يقوم كل من googledrive و rdrop2 بالمصادقة مرة واحدة لكل جلسة، ثم يقومان بتحميل وتنزيل وحذف الملفات مباشرة من R.

تصدير البيانات من R CSV Excel

كيفية تصدير البيانات من R

في هذا البرنامج التعليمي، سوف نتعلم كيفية تصدير البيانات من بيئة R إلى تنسيقات مختلفة.

لتصدير البيانات إلى القرص الصلب، تحتاج إلى مسار الملف وامتداده. أولاً، المسار هو الموقع الذي سيتم تخزين البيانات فيه. في هذا البرنامج التعليمي، ستشاهد كيفية تخزين البيانات على:

  • القرص الصلب
  • Google Drive
  • Dropbox

ثانيًا، يمكن لبرنامج R كتابة البيانات بصيغ متعددة. يشرح هذا الدليل امتدادات الملفات الأساسية:

  • CSV
  • XLSX
  • RDS
  • SAS
  • SPSS
  • ستاتا

كل عملية تصدير تتبع نفس الشكل: استدعاء دالة واحدة، وإطار بيانات، ومسار وجهة.

تصدير إلى القرص الصلب

للبدء، يمكنك حفظ البيانات مباشرةً في دليل العمل. يقوم الكود التالي بطباعة مسار دليل العمل الخاص بك:

directory <- getwd()
directory

الإخراج:

## [1] "/Users/15_Export_to_do"

ما لم تُحدد مسارًا كاملاً، فسيتم كتابة كل ملف في دليل العمل هذا. يختلف المسار الافتراضي باختلاف النظام، وعادةً ما يكون مجلد المستخدم الرئيسي. macOS ونظام لينكس ومجلد المستندات على Windowsلكن الدالة getwd() تُخبرك دائمًا بالقيمة الحالية. غيّرها باستخدام الدالة setwd()، أو ببساطة مرّر المسار الكامل إلى دالة الكتابة.

setwd("/Users/USERNAME/Downloads")

إنشاء إطار البيانات

أولاً، قم بإنشاء إطار بيانات صغير: متوسط ​​استهلاك الوقود (mpg) واستهلاك الوقود (disp) مجمعة حسب نوع التروس من مجموعة بيانات mtcars.

library(dplyr)
df <-mtcars %>%
    select(mpg, disp, gear) %>%
    group_by(gear) %>%
    summarize(mean_mpg = mean(mpg), mean_disp = mean(disp))
df

الإخراج:

## # A tibble: 3 x 3
##	gear mean_mpg mean_disp
##	<dbl>	<dbl>	<dbl>
## 1	3 16.10667  326.3000
## 2 	4 24.53333  123.0167
## 3	5 21.38000  202.4800

يحتوي الجدول على ثلاثة صفوف وثلاثة أعمدة. يمكنك إنشاء ملف CSV باستخدام الوظيفة write.csv في R.

كيفية تصدير DataFrame إلى ملف CSV في R

بناء الجملة الأساسي لـ write.csv في R لتصدير DataFrame إلى CSV في R:

write.csv(df, path)
arguments
-df: Dataset to save. Need to be the same name of the data frame in the environment.
-path: A string. Set the destination path. Path + filename + extension i.e. "/Users/USERNAME/Downloads/mydata.csv" or the filename + extension if the folder is the same as the working directory

على سبيل المثال:

write.csv(df, "table_car.csv")

Code تفسير

  • write.csv(df, “table_car.csv”): قم بإنشاء ملف CSV في القرص الصلب:
    • df: اسم إطار البيانات في البيئة
    • "table_car.csv": قم بتسمية الملف table_car وقم بتخزينه كملف csv

ملاحظات: تقوم الدالة write.csv2() بكتابة نفس الملف باستخدام الفاصلة المنقوطة كفاصل للحقول والفاصلة كعلامة عشرية، وهو ما يعتبر اصطلاحًا في معظم أنحاء أوروبا القارية.

write.csv2(df, "table_car.csv")

ملاحظاتلأغراض تعليمية فقط، أنشأنا دالةً باسم open_folder() لفتح مجلد الدليل نيابةً عنك. ما عليك سوى تشغيل الكود أدناه لمعرفة مكان ملف CSV. ستجد ملفًا باسم table_car.csv.

# Run this code to create the function
open_folder <-function(dir){
	if (.Platform['OS.type'] == "windows"){
	shell.exec(dir)  
	} else {
	system(paste(Sys.getenv("R_BROWSER"), dir))
  }
}
# Call the function to open the folder
open_folder(directory)

كيفية تصدير إطار بيانات إلى ملف Excel في لغة R

يُعدّ التصدير إلى Excel أمرًا بسيطًا على Windows وأكثر صعوبة بعض الشيء في macOSيستخدم كلا البرنامجين مكتبة xlsx، والفرق الوحيد يكمن في التثبيت، لأن xlsx تعتمد على Java. Java يجب أن يكون موجودًا على الجهاز قبل تحميل الحزمة.

Windows المستخدمين

On Windowsقم بتثبيت المكتبة مباشرةً باستخدام conda:

conda install -c r r-xlsx

بمجرد تثبيت المكتبة، يقوم الأمر write.xlsx() بإنشاء مصنف Excel جديد في دليل العمل:

library(xlsx)
write.xlsx(df, "table_car.xlsx")

إذا كنت من مستخدمي نظام التشغيل Mac OS، فأنت بحاجة إلى اتباع الخطوات التالية:

  • الخطوة 1: تثبيت أحدث إصدار من Java
  • الخطوة 2: تثبيت المكتبة rJava
  • الخطوة 3: تثبيت مكتبة xlsx

الخطوة 1) هل يمكن تحميل Java من مسؤول Oracle الموقع وتثبيته.

يمكنك العودة إلى Rstudio والتحقق من إصدار Java تم تثبيت.

system("java -version")

أي حديث Java يعمل الأمر. إذا لم يُظهر الأمر أي نتائج، Java لم يتم تثبيته، وسيفشل تحميل حزمة xlsx.

الخطوة 2) تحتاج إلى تثبيت rjava في R. نوصيك بتثبيت R وRstudio مع Anaconda. تدير Anaconda التبعيات بين المكتبات. بهذا المعنى، ستتعامل Anaconda مع تعقيدات rJava تركيب.

أولاً وقبل كل شيء، تحتاج إلى تحديث conda ثم تثبيت مكتبة. يمكنك نسخ ولصق السطرين التاليين من التعليمات البرمجية في الجهاز.

conda update conda
conda install -c r r-rjava

بعد ذلك، افتح rjava في Rstudio

library(rJava)

الخطوة 3) وأخيرا، حان الوقت لتثبيت xlsx. مرة أخرى، يمكنك استخدام كوندا للقيام بذلك:

conda install -c r r-xlsx

تمامًا مثل مستخدمي Windows، يمكنك حفظ البيانات باستخدام الدالة write.xlsx()

library(xlsx)

الإخراج:

## Loading required package: xlsxjars
write.xlsx(df, "table_car.xlsx")

تصدير البيانات من R إلى برامج مختلفة

إن تصدير البيانات إلى برامج مختلفة أمر بسيط مثل استيرادها. توفر المكتبة "haven" طريقة ملائمة لتصدير البيانات إلى

  • com.spss
  • ساس
  • كان

أولاً، قم باستيراد المكتبة. إذا لم يكن لديك "haven"، يمكنك الانتقال إلى اضغط هنا لتثبيته.

library(haven)

ملف SPSS

وفيما يلي الكود لتصدير البيانات إلى برنامج SPSS:

write_sav(df, "table_car.sav")

ملف SAS

وببساطة spss، يمكنك التصدير إلى sas

write_sas(df, "table_car.sas7bdat")

ملف STATA

وأخيرًا، تسمح مكتبة haven بكتابة ملف .dta.

write_dta(df, "table_car.dta")

كيفية تصدير البيانات إلى تنسيقات R الأصلية

إذا كنت ترغب في الاحتفاظ بالكائن داخل لغة R بدلاً من تمريره إلى برنامج آخر، فاستخدم أحد التنسيقين الأصليين. تقوم الدالة save() بكتابة كائن واحد أو أكثر من الكائنات المسماة في ملف بامتداد .RData.

save(df, file ='table_car.RData')

أما البديل فهو saveRDS()، الذي يخزن كائنًا واحدًا فقط ويسمح للقارئ باختيار اسمه عند العودة إليه:

# One object, name chosen at read time
saveRDS(df, file = "table_car.rds")
my_data <- readRDS("table_car.rds")

# Several objects, original names restored
save(df, directory, file = "workspace.RData")
load("workspace.RData")
المعايير saveRDS() / readRDS() حفظ() / تحميل()
عدد العناصر في كل ملف واحد فقط واحد أو كثير
اسم الكائن عند إعادة التحميل أنت تختار ذلك تمت استعادته كما تم حفظه
يستبدل البيئة لا نعم، بصمت
التمديد المعتاد .rds .RData

يُفضّل استخدام دالة saveRDS() في البرامج النصية، لأن دالة load() قد تستبدل كائنًا موجودًا بنفس الاسم دون إشعار. كلا الصيغتين تحافظان على مستويات العوامل وترتيبها وخصائصها سليمة، وهو ما لا تستطيع صيغة CSV فعله.

يمكنك التحقق من الملفات التي تم إنشاؤها أعلاه في دليل العمل الحالي

تصدير البيانات من R إلى ملف STATA

التفاعل مع الخدمات السحابية

وأخيرا وليس آخرا، R مجهز بمكتبات رائعة للتفاعل مع خدمات الحوسبة السحابية. يتناول الجزء الأخير من هذا البرنامج التعليمي ملفات التصدير/الاستيراد من:

  • Google Drive
  • Dropbox

ملاحظاتيفترض هذا الجزء من البرنامج التعليمي أن لديك حسابًا لدى Google و Dropbox. إذا لم يكن الأمر كذلك، فيمكنك إنشاء واحد بسرعة لـ – Google Drive: https://accounts.google.com/SignUp?hl=en - Dropbox: https://www.dropbox.com/h

Google Drive

يجب عليك تثبيت مكتبة googledrive للوصول إلى الوظيفة التي تسمح بالتفاعل مع Google Drive.

المكتبة ليست متاحة بعد في أناكوندا. يمكنك تثبيته باستخدام الكود أدناه في وحدة التحكم.

install.packages("googledrive")

وقمت بفتح المكتبة.

library(googledrive)

بالنسبة لمستخدمي البرامج الأخرى غير conda، يُعد تثبيت المكتبة أمرًا سهلاً، حيث يمكنك استخدام الأمر install.packages('اسم الحزمة') مع وضع اسم الحزمة بين علامتي اقتباس داخل الأقواس. يقوم R بتثبيتها في الموقع الأول الذي تُرجعه الدالة .libPaths().

حمل الى Google Drive

لتحميل ملف إلى Google في محرك الأقراص، تحتاج إلى استخدام الدالة drive_upload().

في كل مرة تقوم فيها بإعادة تشغيل Rstudio، سيُطلب منك السماح بالوصول إلى tidyverse Google Drive.

بناء الجملة الأساسي لـdrive_upload() هو

drive_upload(file, path = NULL, name = NULL)
arguments:
- file: Full name of the file to upload (i.e., including the extension)
- path: Location of the file- name: You can rename it as you wish. By default, it is the local name.

بعد تشغيل التعليمات البرمجية، تحتاج إلى تأكيد عدة أسئلة

drive_upload("table_car.csv", name = "table_car")

الإخراج:

## Local file: 
## * table_car.csv 
## uploaded into Drive file: 
## * table_car: 1hwb57eT-9qSgDHt9CrVt5Ht7RHogQaMk 
## with MIME type: 
## * text/csv

اكتب 1 في وحدة التحكم لتأكيد الوصول

Google Drive

ثم يتم إعادة توجيهك إلى Google للسماح بالوصول إلى واجهة برمجة التطبيقات (API)، انقر فوق "السماح".

Google Drive

بمجرد اكتمال المصادقة، يمكنك الخروج من المتصفح.

Google Drive

في وحدة تحكم RStudio، يمكنك رؤية ملخص الخطوة التي تم إنجازها. Google تم تحميل الملف بنجاح الموجود محلياً على محرك الأقراص. Google تم تخصيص معرف لكل ملف في محرك الأقراص.

Google Drive

يمكنك رؤية هذا الملف في Google Spreadsheet.

drive_browse("table_car")

الإخراج:

سيتم توجيهك إلى Google Spreadsheet

Google Drive

الاستيراد من Google Drive

يُعدّ التنزيل باستخدام مُعرّف الملف الطريقة الموثوقة. إذا كنت تعرف اسم الملف، فابحث عن مُعرّفه أولاً:

ملاحظات: اعتمادًا على اتصالك بالإنترنت وحجم Drive الخاص بك، يستغرق الأمر بعض الوقت.

x <-drive_get("table_car")
as_id(x)

Google Drive

لقد قمت بتخزين المعرف في المتغير x. تسمح الدالة drive_download() بتنزيل ملف من Google Drive.

بناء الجملة الأساسي هو:

drive_download(file, path = NULL, overwrite = FALSE)
arguments:
- file:  Name or id of the file to download
-path: Location to download the file. By default, it is downloaded to the working directory and the name as in Google Drive
-overwrite = FALSE: If the file already exists, don't overwrite it. If set to TRUE, the old file is erased and replaced by the new one.

يمكنك أخيرًا تنزيل الملف:

download_google <- drive_download(as_id(x), overwrite = TRUE)

Code تفسير

  • Drive_download(): وظيفة تنزيل ملف من Google Drive
  • as_id(x): استخدم المعرف لتصفح الملف فيه Google Drive
  • الكتابة فوق = TRUE: في حالة وجود الملف، قم بالكتابة فوقه، وإلا سيتم إيقاف التنفيذ لرؤية اسم الملف محليًا، يمكنك استخدام:

الإخراج:

Google Drive

يُخزَّن الملف في مجلد العمل الخاص بك. تذكّر إضافة امتداد الملف قبل فتحه في برنامج R. يمكنك إنشاء الاسم الكامل باستخدام الدالة paste() (مثلاً: table_car.csv).

google_file <-download_google$local_path
google_file
path <-paste(google_file, ".csv", sep = "")
google_table_car <-read.csv(path)
google_table_car

الإخراج:

##   X gear mean_mpg mean_disp
## 1 1    3 16.10667  326.3000
## 2 2    4 24.53333  123.0167
## 3 3    5 21.38000  202.4800

وأخيرًا، يمكنك إزالة الملف من جهازك Google القيادة.

## remove file
drive_find("table_car") %>%drive_rm()

الإخراج:

Google Drive

تتم معالجة الحذف بشكل غير متزامن بواسطة Googleلذا قد يستغرق الملف بعض الوقت ليختفي.

تصدير الى Dropbox

يتفاعل مع R Dropbox عبر مكتبة rdrop2. المكتبة غير متوفرة في أناكوندا أيضًا. يمكنك تثبيته عبر وحدة التحكم

install.packages('rdrop2')
library(rdrop2)

أنت تمنح حق الوصول المؤقت إلى Dropbox باستخدام بيانات اعتمادك. بمجرد المصادقة، يمكن لبرنامج R إنشاء الملفات وإزالتها وتحميلها وتنزيلها في حسابك. Dropbox.

بادئ ذي بدء، تحتاج إلى منح حق الوصول إلى حسابك. يتم تخزين بيانات الاعتماد مؤقتًا أثناء الجلسة بأكملها.

drop_auth()

سيتم توجيهك إلى Dropbox لتأكيد المصادقة.

تصدير الى Dropbox

سوف تحصل على صفحة التأكيد. يمكنك إغلاقه والعودة إلى R

تصدير الى Dropbox

يمكنك إنشاء مجلد باستخدام الوظيفة drop_create().

  • drop_create('my_first_drop'): قم بإنشاء مجلد في الفرع الأول من Dropbox
  • drop_create('First_branch/my_first_drop'): قم بإنشاء مجلد داخل مجلد First_branch الموجود.
drop_create('my_first_drop')

الإخراج:

تصدير الى Dropbox

في قطرةBox

تصدير الى Dropbox

لتحميل ملف .csv إلى ملفك Dropboxاستخدم الدالة drop_upload().

بناء الجملة الأساسي:

drop_upload(file, path = NULL, mode = "overwrite")
arguments:
- file: local path
- path: Path on Dropbox 
- mode = "overwrite":  By default, overwrite an existing file. If set to `add`, the upload is not completed.
drop_upload('table_car.csv', path = "my_first_drop")

الإخراج:

تصدير الى Dropbox

عند السقوطBox

تصدير الى Dropbox

يمكنك قراءة ملف CSV من Dropbox باستخدام الدالة drop_read_csv()

dropbox_table_car <-drop_read_csv("my_first_drop/table_car.csv")
dropbox_table_car

الإخراج:

##   X gear mean_mpg mean_disp
## 1 1    3 16.10667  326.3000
## 2 2    4 24.53333  123.0167
## 3 3    5 21.38000  202.4800

عند الانتهاء من استخدام الملف والرغبة في حذفه. تحتاج إلى كتابة مسار الملف في الدالة drop_delete()

drop_delete('my_first_drop/table_car.csv')

الإخراج:

تصدير الى Dropbox

من الممكن أيضًا حذف مجلد

drop_delete('my_first_drop')

الإخراج:

تصدير الى Dropbox

تصدير البيانات من R: مرجع الدوال

جميع وظائف التصدير المستخدمة في هذا البرنامج التعليمي مدرجة أدناه:

المكتبة الهدف الوظيفة
قاعدة تصدير ملف CSV write.csv()
XLSX تصدير التفوق الكتابة.xlsx()
ملاذ تصدير برنامج spss write_sav()
ملاذ تصدير ساس write_sas()
ملاذ تصدير البيانات write_dta()
قاعدة تصدير كائنات R حفظ() / حفظ RDS()
جوجل درايف تحميل Google Drive Drive_upload()
جوجل درايف فتح في Google Drive Drive_browse()
جوجل درايف استرجاع معرف الملف Drive_get(as_id())
جوجل درايف تحميل من Google Drive drive_download()
جوجل درايف إزالة الملف من Google Drive Drive_rm()
rdrop 2 التحقّق من المُستخدم drop_auth()
rdrop 2 قم بإنشاء مجلد drop_create()
rdrop 2 حمل الى Dropbox drop_upload()
rdrop 2 قراءة ملف CSV من Dropbox drop_read_csv()
rdrop 2 احذف الملف من Dropbox drop_delete()

الأسئلة الشائعة

تخزن الدالة saveRDS() كائنًا واحدًا، بينما تتيح لك الدالة readRDS() تعيينه لأي اسم. أما الدالة save() فتخزن عدة كائنات، بينما تستعيد الدالة load() أسماءها الأصلية، مما قد يؤدي إلى استبدال المتغيرات الموجودة مسبقًا في بيئتك دون إشعار.

بشكل افتراضي، تقوم الدالة write.csv() بكتابة أسماء الصفوف كعمود أول غير مُسمى. مرر قيمة row.names = FALSE لإخفاء ذلك، وإلا فإن إعادة استيراد الملف ستؤدي إلى ظهور عمود X غير مرغوب فيه.

استخدم الدالة writexl::write_xlsx() أو openxlsx::write.xlsx(). كلتاهما تكتبان ملفات .xlsx بلغة R خالصة بدون أي قيود. Java التبعية، التي تتجنب rJava الإعدادات التي تتطلبها حزمة xlsx.

استخدم RDS أو Parquet بدلاً من CSV. فكلاهما يحافظ على أنواع الأعمدة ومستويات العوامل، لذا يتم إعادة تحميل مجموعة بيانات التدريب بشكل متطابق. أما CSV فيقوم بتحويل الأنواع تلقائيًا، وهو مصدر شائع لنتائج نماذج غير قابلة للتكرار.

نعم. يمكن للمساعدين الذين يعملون بالذكاء الاصطناعي تشخيص أخطاء الأذونات، ومجلدات العمل الخاطئة، والمجلدات المفقودة. Java بالنسبة لحزمة ملفات xlsx، تأكد دائمًا من الوجهة باستخدام الدالة getwd() قبل الوثوق بأي مسار مقترح.

تلخيص هذه التدوينة بـ: