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

رتبه: 0 ار 0 رای sssss
آر
نویسنده: میلاد حیدری زمان مطالعه 4 دقیقه
Banner Image

داده ها در واقع سیستم های وابسته به پایگاه داده هستند که در فرمت نرمالیزه شده ای ذخیره شده اند. بنابراین؛ برای انجام محاسبات آماری نیاز به جستجو بسیار پیشرفته و پیچیده ی 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 حذف شده است.

profile name
میلاد حیدری

بخندید کتاب بخونید و خوب باشید تا جامعه مون به آرامش برسه. لطفا ! هر سوالی دارید در بخش نظرات مطرح کنید. ما یا سایر هموطنان عزیز پاسخ خواهیم داد. برای کمک به سایت ما و گسترش آموزش در بین هموطنان، در سایتها، وبلاگ ها و شبکه های اجتماعی لینک سایت ما را درج کنید.

مطالب پیشنهادی برای شما

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

1 2 3 4 5

0 نظر درباره «پایگاه داده در زبان برنامه نویسی آر»

    هنوز نظری برای این بخش ثبت نشده است
مشاهده همه نظرات
سبد خرید
سبد خرید شما خالی است
× جهت نصب روی دکمه زیر در گوشی کلیک نمائید
آی او اس
سپس در مرحله بعد برروی دکمه "Add To Home Screen" کلیک نمائید