در زبان R میتوانیم دادهها را از فایلهایی که خارج از محیط R ذخیره شدهاند بخوانیم. همچنین امکان نوشتن دادهها در فایلهایی وجود دارد که توسط سیستمعامل ذخیره و مدیریت میشوند. R قابلیت خواندن و نوشتن در قالبهای مختلف فایل مانند CSV، Excel، XML و غیره را دارد.
در این فصل میآموزیم چگونه دادهها را از یک فایل CSV بخوانیم و سپس دادهها را در همان قالب ذخیره کنیم. فایل باید در دایرکتوری کاری جاری (Current Working Directory) موجود باشد تا R بتواند آن را بخواند. البته میتوانیم دایرکتوری دلخواه خود را نیز تنظیم کرده و فایلها را از آن مسیر بخوانیم.
دریافت و تنظیم دایرکتوری کاری
برای بررسی اینکه محیط R به کدام دایرکتوری اشاره میکند از تابع getwd()
استفاده میکنیم. همچنین میتوانیم با تابع setwd()
دایرکتوری کاری جدیدی را تعیین کنیم.
1 2 3 4 5 6 7 8 |
# دریافت و چاپ دایرکتوری کاری جاری print(getwd()) # تنظیم دایرکتوری کاری جاری setwd("/web/com") # دریافت و چاپ دایرکتوری کاری جاری print(getwd()) |
1 2 |
[1] "/web/com/1441086124_2016" [1] "/web/com" |
این نتیجه به سیستمعامل و محل فعلی که در آن کار میکنید بستگی دارد.
ورودی به صورت فایل CSV در زبان R
فایل CSV نوعی فایل متنی است که در آن مقادیر ستونها با علامت ویرگول (,) از هم جدا میشوند. داده نمونه زیر در فایلی با نام input.csv قرار دارد.
میتوانید این فایل را با استفاده از Notepad در ویندوز ایجاد کنید: دادهها را کپی و جایگذاری کنید و سپس با گزینه Save As → All files (.) آن را با نام input.csv ذخیره کنید.
1 2 3 4 5 6 7 8 9 |
id,name,salary,start_date,dept 1,Rick,623.3,2012-01-01,IT 2,Dan,515.2,2013-09-23,Operations 3,Michelle,611,2014-11-15,IT 4,Ryan,729,2014-05-11,HR 5,Gary,843.25,2015-03-27,Finance 6,Nina,578,2013-05-21,IT 7,Simon,632.8,2013-07-30,Operations 8,Guru,722.5,2014-06-17,Finance |
read.csv()
آورده شده است که یک فایل CSV موجود در دایرکتوری کاری جاری را میخواند.
1 2 |
data <- read.csv("input.csv") print(data) |
وقتی کد بالا را اجرا میکنیم، نتیجه زیر را تولید میکند:
1 2 3 4 5 6 7 8 9 |
id, name, salary, start_date, dept 1 1 Rick 623.30 2012-01-01 IT 2 2 Dan 515.20 2013-09-23 Operations 3 3 Michelle 611.00 2014-11-15 IT 4 4 Ryan 729.00 2014-05-11 HR 5 NA Gary 843.25 2015-03-27 Finance 6 6 Nina 578.00 2013-05-21 IT 7 7 Simon 632.80 2013-07-30 Operations 8 8 Guru 722.50 2014-06-17 Finance |
تحلیل فایل CSV در زبان R
بهطور پیشفرض، تابع read.csv()
خروجی را به صورت یک Data Frame برمیگرداند. برای بررسی این موضوع و همچنین مشاهده تعداد ستونها و ردیفها میتوان از کد زیر استفاده کرد:
1 2 3 4 5 |
data <- read.csv("input.csv") print(is.data.frame(data)) print(ncol(data)) print(nrow(data)) |
1 2 3 |
[1] TRUE [1] 5 [1] 8 |
پس از خواندن داده در قالب Data Frame، میتوانیم تمام توابع مرتبط با آن را که در بخشهای بعدی توضیح داده میشود، به کار بگیریم.
به دست آوردن بیشترین حقوق
1 2 3 4 5 6 |
# ایجاد یک Data Frame data <- read.csv("input.csv") # استخراج بیشترین مقدار حقوق sal <- max(data$salary) print(sal) |
1 |
[1] 843.25 |
دریافت اطلاعات فرد با بیشترین حقوق
میتوانیم ردیفهایی را که شرط خاصی دارند، مشابه عبارت WHERE در SQL انتخاب کنیم.
1 2 3 4 5 6 7 8 9 |
# ایجاد یک Data Frame data <- read.csv("input.csv") # استخراج بیشترین مقدار حقوق sal <- max(data$salary) # انتخاب اطلاعات فردی که بیشترین حقوق را دارد retval <- subset(data, salary == max(salary)) print(retval) |
1 2 |
id name salary start_date dept 5 NA Gary 843.25 2015-03-27 Finance |
دریافت همه افراد بخش IT
در این مثال همه افرادی که در بخش IT کار میکنند از Data Frame انتخاب میشوند:
1 2 3 4 5 |
# ایجاد یک Data Frame data <- read.csv("input.csv") retval <- subset(data, dept == "IT") print(retval) |
1 2 3 4 |
id name salary start_date dept 1 1 Rick 623.3 2012-01-01 IT 3 3 Michelle 611.0 2014-11-15 IT 6 6 Nina 578.0 2013-05-21 IT |
دریافت افراد بخش IT با حقوق بالاتر از 600
1 2 3 4 5 |
# ایجاد یک Data Frame data <- read.csv("input.csv") info <- subset(data, salary > 600 & dept == "IT") print(info) |
1 2 3 |
id name salary start_date dept 1 1 Rick 623.3 2012-01-01 IT 3 3 Michelle 611.0 2014-11-15 IT |
دریافت افرادی که از سال 2014 به بعد استخدام شدهاند
1 2 3 4 5 |
# ایجاد یک Data Frame data <- read.csv("input.csv") retval <- subset(data, as.Date(start_date) > as.Date("2014-01-01")) print(retval) |
1 2 3 4 5 |
id name salary start_date dept 3 3 Michelle 611.00 2014-11-15 IT 4 4 Ryan 729.00 2014-05-11 HR 5 NA Gary 843.25 2015-03-27 Finance 8 8 Guru 722.50 2014-06-17 Finance |
نوشتن دادهها در فایل CSV
زبان R میتواند از روی یک Data Frame فایل CSV تولید کند. برای این کار از تابع write.csv()
استفاده میکنیم. فایل خروجی در دایرکتوری کاری ایجاد میشود.
1 2 3 4 5 6 7 8 |
# ایجاد یک Data Frame data <- read.csv("input.csv") retval <- subset(data, as.Date(start_date) > as.Date("2014-01-01")) # نوشتن دادههای فیلترشده در یک فایل جدید write.csv(retval,"output.csv") newdata <- read.csv("output.csv") print(newdata) |
1 2 3 4 5 |
X id name salary start_date dept 1 3 3 Michelle 611.00 2014-11-15 IT 2 4 4 Ryan 729.00 2014-05-11 HR 3 5 NA Gary 843.25 2015-03-27 Finance 4 8 8 Guru 722.50 2014-06-17 Finance |
ستون اضافی X از Data Frame ایجاد میشود. برای حذف آن هنگام نوشتن فایل، باید از پارامتر row.names = FALSE
استفاده کنیم.
1 2 3 4 5 6 7 8 |
# ایجاد یک Data Frame data <- read.csv("input.csv") retval <- subset(data, as.Date(start_date) > as.Date("2014-01-01")) # نوشتن دادهها در فایل جدید بدون ستون ردیف write.csv(retval,"output.csv", row.names = FALSE) newdata <- read.csv("output.csv") print(newdata) |
1 2 3 4 5 |
id name salary start_date dept 1 3 Michelle 611.00 2014-11-15 IT 2 4 Ryan 729.00 2014-05-11 HR 3 NA Gary 843.25 2015-03-27 Finance 4 8 Guru 722.50 2014-06-17 Finance |
راستی! برای دریافت مطالب جدید در کانال تلگرام یا پیج اینستاگرام سورس باران عضو شوید.
- انتشار: ۲۱ شهریور ۱۴۰۴
دسته بندی موضوعات
- آموزش ارز دیجیتال
- آموزش برنامه نویسی
- آموزش متنی برنامه نویسی
- اطلاعیه و سایر مطالب
- پروژه برنامه نویسی
- دوره های تخصصی برنامه نویسی
- رپورتاژ
- فیلم های آموزشی
- ++C
- ADO.NET
- Adobe Flash
- Ajax
- AngularJS
- apache
- ARM
- Asp.Net
- ASP.NET MVC
- AVR
- Bootstrap
- CCNA
- CCNP
- CMD
- CSS
- Dreameaver
- EntityFramework
- HTML
- IOS
- jquery
- Linq
- Mysql
- Oracle
- PHP
- PHPMyAdmin
- Rational Rose
- silver light
- SQL Server
- Stimulsoft Reports
- Telerik
- UML
- VB.NET&VB6
- WPF
- Xml
- آموزش های پروژه محور
- اتوکد
- الگوریتم تقریبی
- امنیت
- اندروید
- اندروید استودیو
- بک ترک
- بیسیک فور اندروید
- پایتون
- جاوا
- جاوا اسکریپت
- جوملا
- دلفی
- دوره آموزش Go
- دوره های رایگان پیشنهادی
- زامارین
- سئو
- ساخت CMS
- سی شارپ
- شبکه و مجازی سازی
- طراحی الگوریتم
- طراحی بازی
- طراحی وب
- فتوشاپ
- فریم ورک codeigniter
- فلاتر
- کانستراکت
- کریستال ریپورت
- لاراول
- معماری کامپیوتر
- مهندسی اینترنت
- هوش مصنوعی
- یونیتی
- کتاب های آموزشی
- Android
- ASP.NET
- AVR
- LINQ
- php
- Workflow
- اچ تی ام ال
- بانک اطلاعاتی
- برنامه نویسی سوکت
- برنامه نویسی موبایل
- پاسکال
- پایان نامه
- پایتون
- جاوا
- جاوا اسکریپت
- جی کوئری
- داده کاوی
- دلفی
- رباتیک
- سئو
- سایر کتاب ها
- سخت افزار
- سی اس اس
- سی پلاس پلاس
- سی شارپ
- طراحی الگوریتم
- فتوشاپ
- مقاله
- مهندسی نرم افزار
- هک و امنیت
- هوش مصنوعی
- ویژوال بیسیک
- نرم افزار و ابزار برنامه نویسی
- وردپرس