آر

پایگاه داده در زبان برنامه نویسی آر

اساطیر زبان

داده ها در واقع سیستم های وابسته به پایگاه داده هستند که در فرمت نرمالیزه شده ای ذخیره شده اند. بنابراین؛ برای انجام محاسبات آماری نیاز به جستجو بسیار پیشرفته و پیچیده ی Sql خواهیم داشت. اما آر می تواند به سادگی به بسیاری از پایگاه داده های رابطه ای مانند MySql، Oracle، سرور Sql و … متصل شود. زمانی که داده ها در محیط آر در دسترس هستند؛ یک مجموعه داده R خواهیم داشت و می توان آن را با استفاده از تمام بسته ها و توابع قدرتمند؛ تجزیه و تحلیل و یا به نوعی مدیریت کرد.

در این آموزش ما از MuSql به عنوان پایگاه داده ی مرجع خود برای اتصال به آر استفاده می کنیم.

بسته RMySQL

آر یک بسته درونی دارد که “RMySQL” نامیده می شود که اتصال بومی بین پایگاه داده MySql را فراهم می آورد. شما می توانید با استفاده از فرمان زیر؛ این بسته را در محیط آر نصب بکنید.

install.packages(“RMySQL”)

اتصال آر به MySql

زمانی که بسته نصب می شود، ما یک شیء متصل در آر برای اتصال به پایگاه داده ایجاد می کنیم. این شیء، نام کاربری، پسورد، نام پایگاه داده و نام میزبان را به عنوان ورودی اتخاذ می کند.

# Create a connection Object to MySQL database.

# We will connect to the sampel database named “sakila” that comes with MySql installation.

mysqlconnection = dbConnect(MySQL(), user = ‘root’, password = ”, dbname = ‘sakila’,

host = ‘localhost’)

# List the tables available in this database.

dbListTables(mysqlconnection)

زمانی که کد بالا را اجرا می کنیم؛ نتیجه زیر به دست می آید:

[۱] “actor” “actor_info”

[۳] “address” “category”

[۵] “city” “country”

[۷] “customer” “customer_list”

[۹] “film” “film_actor”

[۱۱] “film_category” “film_list”

[۱۳] “film_text” “inventory”

[۱۵] “language” “nicer_but_slower_film_list”

[۱۷] “payment” “rental”

[۱۹] “sales_by_film_category” “sales_by_store”

[۲۱] “staff” “staff_list”

[۲۳] “store”

جستجوی جدوال

با استفاده از تابع ()dbSendQuery می توانیم جداول پایگاه داده را در MySql جستجو کنیم. پرسش در MySql اجرا شده و مجموعه حاصل با استفاده از تابع ()fetch در آر بازگردانده می شود. در نهایت؛ این فایل به شکل یک چارچوب داده در آر ذخیره می شود.

# Query the “actor” tables to get all the rows.

result = dbSendQuery(mysqlconnection, “select * from actor”)

# Store the result in a R data frame object. n = 5 is used to fetch first 5 rows.

data.frame = fetch(result, n = 5)

print(data.fame)

زمانی که کد بالا را اجرا می کنیم؛ نتیجه زیر به دست می آید.

actor_id first_name last_name last_update

۱ ۱ PENELOPE GUINESS 2006-02-15 04:34:33

۲ ۲ NICK WAHLBERG 2006-02-15 04:34:33

۳ ۳ ED CHASE 2006-02-15 04:34:33

۴ ۴ JENNIFER DAVIS 2006-02-15 04:34:33

۵ ۵ JOHNNY LOLLOBRIGIDA 2006-02-15 04:34:33

پرس و جو با بند فیلتر

ما می توانیم هر پرسش انتخاب مجازی را برای دریافت نتیجه؛ انتقال دهیم:

result = dbSendQuery(mysqlconnection, “select * from actor where last_name = ‘TORN'”)

# Fetch all the records(with n = -1) and store it as a data frame.

data.frame = fetch(result, n = -1)

print(data)

زمانی که کد بالا را اجرا می کنیم؛ نتایج زیر به دست می آید:

actor_id first_name last_name last_update

۱ ۱۸ DAN TORN 2006-02-15 04:34:33

۲ ۹۴ KENNETH TORN 2006-02-15 04:34:33

۳ ۱۰۲ WALTER TORN 2006-02-15 04:34:33

به روز رسانی ردیف هادر جداول

ما می توانیم با انتقال پرسش آپدیت به تابع ()dbSendQuery ردیف ها را در جدول Mysql را به روز رسانی کنیم.

dbSendQuery(mysqlconnection, “update mtcars set disp = 168.5 where hp = 110”)

بعد از اجرای کد بالا می توانیم جدول به روز رسانی شده را در محیط MySql مشاهده کنیم.

درج داده ها درون جداول

dbSendQuery(mysqlconnection,

“insert into mtcars(row_names, mpg, cyl, disp, hp, drat, wt, qsec, vs, am, gear, carb)

values(‘New Mazda RX4 Wag’, 21, 6, 168.5, 110, 3.9, 2.875, 17.02, 0, 1, 4, 4)”

)

بعد از اجرای کد بالا می توانیم ردیف های درج شده در جدول را در محیط MySql مشاهده کنیم.

ایجاد جداول در MySql

با استفاده از تابع ()dbWriteTable ما می توانیم جدوالی را در MySql ایجاد کنیم. این تابع اگر جدول پیش از این؛ وجود داشته باشد؛ آن را رونویسی می کند و یک چارچوب داده را به عنوان ورودی اتخاذ می کند.

# Create the connection object to the database where we want to create the table.

mysqlconnection = dbConnect(MySQL(), user = ‘root’, password = ”, dbname = ‘sakila’,

host = ‘localhost’)

# Use the R data frame “mtcars” to create the table in MySql.

# All the rows of mtcars are taken inot MySql.

dbWriteTable(mysqlconnection, “mtcars”, mtcars[, ], overwrite = TRUE)

بعد از اجرای کد بالا، ما می توانیم جدول ایجاد شده در محیط MySql را مشاهده کنیم.

حذف جداول در MySql

ما همچنین می توانیم جداول در پایگاه داده MySql را حذف کنیم؛ برای این منظور باید عبارت drop table را در تابع ()dbSendQuery قرار دهیم؛ به همان ترتیبی که می توانیم از آن برای جست و جوی داده های جداول استفاده کنیم.

dbSendQuery(mysqlconnection, ‘drop table if exists mtcars’)

بعد از اجرای کد بالا می توانیم مشاهده کنیم که جدول در محیط MySql حذف شده است.

تفاوت پک های حرفه ای ما با آموزشهای رایگان: بطور خلاصه از زمین تا آسمان! 1-پکها، جدیدترین نسخه نرم افزارها را آموزش می دهند با قابلیت های بسیار بیشتر. 2-پکها توسط متخصص آن نرم افزار، به صورت کاملا پروژه محور و با حل چالش هایی که در مسیر کار عملی و حرفه ای با آن روبرو می شوید تهیه شده اند و بعد از استفاده، کاملا برای بازار کار آماده اید! 3- متد این پکها کاملا کار شده و تا ماهها، در ذهن تان ماندگارند و یادگیری بسیار سریعتر و کاملتری خواهید داشت. آموزشهای رایگان فقط دستورات نرم افزارها را (آنهم ناقص) بیان می کنند و تازه برای ورود به بازار باید ماهها تجربه عملی هم کسب کنید !!

turned_in

چرب زبان

با این اپلیکیشن ساده، هر زبانی رو فقط با 5 دقیقه در روز، توی 80 روز مثل بلبل حرف بزن! بهترین متد روز، تقویت حافظه، آموزش تصویری. یادگیری زبان کلید یادگیری هر مهارتی در قرن 21 !


حتما بخوانید!

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این فیلد را پر کنید
این فیلد را پر کنید
لطفاً یک نشانی ایمیل معتبر بنویسید.

فهرست