آموزش فایل های CSV در زبان برنامه نویسی R
در زبان برنامه نویسی R؛ می توانیم داده ها را از فایل هایی بخوانیم که در خارج از محیط R ذخیره شده اند. ما همچنین می توانیم داده ها را درون فایل هایی بنویسیم که توسط سیستم عامل ذخیره خواهد شد و در دسترس نیز قرار خواهد گرفت. R می تواند فایل هایی با فرمت های متفاوت مانند csv، excel، xml و غیره را بخواند و بنویسد.
در این فصل، یاد می گیریم که داده ها را از فایل csv بخوانیم و سپس داده ها را درون یک فایل csv بنویسیم. فایل مورد نظر باید در آن دایرکتوری که در حال کار می باشد، موجود باشد؛ به این تریب آر می تواند آن فایل را بخواند. البته ما می توانیم دایرکتوری مربوط به خودمان را تنظیم کنیم و فایل ها را از روی آن بخوانیم.
دریافت و تنظیم دایرکتوری در حال کار
شما می توانید با استفاده از تابع ()getwd بررسی کنید که فضای کاری R به کدام دایرکتوری اشاره دارد. شما می توانید همچنین با استفاده از تابع ()setwd می توانید یک دایرکتوری کار جدید تنظیم کنید.
# Get and print current working directory.
print(getwd())
# Set current working directory.
setwd(“/web/com”)
# Get and print current working directory.
print(getwd())
زمانی که کد بالا را اجرا می کنیم؛ نتیجه زیر به دست می آید:
[۱] “/web/com/1441086124_2016”
[۱] “/web/com”
این نتیجه بستگی به سیستم عامل OS شما و دایرکتوری فعلی دارد که در حال کار با آن هستید.
ورودی به عنوان فایل CSV
این فایل csv یک فایل متنی است که در آن مقادیر در موجود در ستون ها با استفاده از کاما، از هم جدا شده اند. اجازه دهید داده های زیر را در نظر بگیریم که تحت نام input.csv موجود می باشد.
شما می توانید این فایل را با استفاده از نوتپد ویندوز ایجاد کنید؛ همچنین می توانید این داده ها را کپی و پیست کنید. با استفاده از گزینه () saveAsAll files در نوتپد؛ فایل را به شکل input.csv ذخیره سازی کنید.
id,name,salary,start_date,dept
۱,Rick,623.3,2012-01-01,IT
۲,Dan,515.2,2013-09-23,Operations
۳,Michelle,611,2014-11-15,IT
۴,Ryan,729,2014-05-11,HR
۵,Gary,843.25,2015-03-27,Finance
۶,Nina,578,2013-05-21,IT
۷,Simon,632.8,2013-07-30,Operations
۸,Guru,722.5,2014-06-17,Finance
مطالعه یک فایل CSV
در ادامه مثال ساده ای از تابع ()read.csv را برای خواندن یک فایل CSV مشاهده می کنید که در دایرکتوری کار فعلی شما در دسترس است.
data <- read.csv(“input.csv”)
print(data)
زمانی که کد بالا را اجرا کنیم؛ نتیجه زیر را به دست می آوریم:
id, name, salary, start_date, dept
۱ ۱ Rick 623.30 2012-01-01 IT
۲ ۲ Dan 515.20 2013-09-23 Operations
۳ ۳ Michelle 611.00 2014-11-15 IT
۴ ۴ Ryan 729.00 2014-05-11 HR
۵ NA Gary 843.25 2015-03-27 Finance
۶ ۶ Nina 578.00 2013-05-21 IT
۷ ۷ Simon 632.80 2013-07-30 Operations
۸ ۸ Guru 722.50 2014-06-17 Finance
تجزیه و تحلیل فایل CSV
به صورت پیش فرض، تابع ()read.csv خروجی را به عنوان یک فریم دیتا ایجاد می کند. این امر می تواند به آسانی به شکل زیر بررسی شود. همچنین ما می توانید تعداد ستون ها و ردیف ها را بررسی کنیم.
data <- read.csv(“input.csv”)
print(is.data.frame(data))
print(ncol(data))
print(nrow(data))
زمانی که کد بالا را اجرا می کنیم؛ نتیجه زیر به دست می آید:
[۱] TRUE
[۱] ۵
[۱] ۸
زمانی که این داده را در فریم دیتا می خوانیم؛ همان طور که در بخش قبلی شرح دادیم؛ می توانیم تمام توابع اجرا شدنی روی فریم دیتاها را اعمال کنیم.
دریافت ماکزیمم حقوق
# Create a data frame.
data <- read.csv(“input.csv”)
# Get the max salary from data frame.
sal <- max(data$salary)
print(sal)
زمانی که کد بالا را اجرا کنیم؛ نتایج زیر به دست می آید:
[۱] ۸۴۳٫۲۵
دریافت اطلاعات شخصی با ماکزیمم حقوق
ما می توانیم ردیف هایی را معیار فیلتر خاصی را برآورد می کنند، مشابه SQL ، واکشی و مکان یابی کنیم.
# Create a data frame.
data <- read.csv(“input.csv”)
# Get the max salary from data frame.
sal <- max(data$salary)
# Get the person detail having max salary.
retval <- subset(data, salary == max(salary))
print(retval)
زمانی که کد بالا را اجرا می کنیم؛ نتایج زیر را به دست می آوریم:
id name salary start_date dept
۵ NA Gary 843.25 2015-03-27 Finance
دستیابی به افرادی که در دپارتمان IT کار می کنند.
# Create a data frame.
data <- read.csv(“input.csv”)
retval <- subset( data, dept == “IT”)
print(retval)
زمانی که کد بالا را اجرا می کنیم؛ نتیجه زیر به دست می آید:
id name salary start_date dept
۱ ۱ Rick 623.3 2012-01-01 IT
۳ ۳ Michelle 611.0 2014-11-15 IT
۶ ۶ Nina 578.0 2013-05-21 IT
دستیابی به افرادی که در دپارتمان IT کار می کنند و حقوق آنها بیشتر از ۶۰۰ می باشد.
# Create a data frame.
data <- read.csv(“input.csv”)
info <- subset(data, salary > 600 & dept == “IT”)
print(info)
زمانی که کد بالا اجرا بشود,؛ نتایج زیر به دست می آید:
id name salary start_date dept
۱ ۱ Rick 623.3 2012-01-01 IT
۳ ۳ Michelle 611.0 2014-11-15 IT
دستیابی به افرادی که در سال ۲۰۱۴ به دپارتمان ملحق شده اند.
# Create a data frame.
data <- read.csv(“input.csv”)
retval <- subset(data, as.Date(start_date) > as.Date(“2014-01-01”))
print(retval)
زمانی که کد بالا را اجرا می کنیم؛ نتایج زیر به دست می آید:
id name salary start_date dept
۳ ۳ Michelle 611.00 2014-11-15 IT
۴ ۴ Ryan 729.00 2014-05-11 HR
۵ NA Gary 843.25 2015-03-27 Finance
۸ ۸ Guru 722.50 2014-06-17 Finance
نوشتن در یک فایل CSV
آر می تواند فایل csv را از فریم دیتای موجود ایجاد کند. تابع ()write.csv برای ایجاد فایل csv استفاده شده است. این فایل در دایرکتوری در حال کار ایجاد می شود.
# Create a data frame.
data <- read.csv(“input.csv”)
retval <- subset(data, as.Date(start_date) > as.Date(“2014-01-01”))
# Write filtered data into a new file.
write.csv(retval,”output.csv”)
newdata <- read.csv(“output.csv”)
print(newdata)
زمانی که کد بالا را اجرا می کنیم، نتیجه زیر را به دست می آوریم:
X id name salary start_date dept
۱ ۳ ۳ Michelle 611.00 2014-11-15 IT
۲ ۴ ۴ Ryan 729.00 2014-05-11 HR
۳ ۵ NA Gary 843.25 2015-03-27 Finance
۴ ۸ ۸ Guru 722.50 2014-06-17 Finance
در این جا ستون X از مجموعه داده های جدیدتر می آید. این ستون را می توان با استفاده از پارامترهای اضافی در هنگام نوشتن فایل؛ حذف کرد.
# Create a data frame.
data <- read.csv(“input.csv”)
retval <- subset(data, as.Date(start_date) > as.Date(“2014-01-01”))
# Write filtered data into a new file.
write.csv(retval,”output.csv”, row.names = FALSE)
newdata <- read.csv(“output.csv”)
print(newdata)
زمانی که کد بالا را اجرا می کنیم؛ نتیجه زیر را به دست می آوریم:
id name salary start_date dept
۱ ۳ Michelle 611.00 2014-11-15 IT
۲ ۴ Ryan 729.00 2014-05-11 HR
۳ NA Gary 843.25 2015-03-27 Finance
۴ ۸ Guru 722.50 2014-06-17 Finance