آر

آموزش فایل های باینری در زبان برنامه نویسی آر

اساطیر زبان

یک فایل باینری، فایلی است که فقط شامل اطلاعاتی می شود که به فرم بیت ها و بایت ها ذخیره شده اند (۰ و ۱) . آنها توسط انسانها قابل خواندن نیستند؛ زیرا بایت های موجود در آن به کاراکترها و نمادهایی ترجمه می شوند که شامل بسیاری از کاراکترهای غیر قابل چاپ دیگر می باشند. تلاش برای خواندن یک فایل باینری با استفاده از هر نوع ویرایشگر متنی؛ نشان دهنده کاراکترهایی مانند Ø و ð خواهد بود.

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

گاهی اوقات داده های ایجاد شده توسط دیگر برنامه ها باید توسط آر به شکل یک فایل باینری پردازش شود. همچنین آر نیز باید یک فایل باینری ایجاد کند که بتوان آن را با دیگر برنامه ها به اشتراک گذاشت.

در زبان برنامه نویسی R دو تابع برای ایجاد و خواندن فایل های باینری وجود دارد که به ترتیب ()writeBin و ()readBin هستند.

سینتکس

writeBin(object, con)

readBin(con, what, n )

پارامترهایی که در کد بالا استفاده شده اند؛ عبارتند از:

  • con شیء اتصال برای خواندن و نوشتن فایل باینری می باشد.
  • object فایل باینری است که باید نوشته شود.
  • what حالتی مانند کاراکتر، عدد صحیح و غیره می باشد. نشان دهنده بایت هایی است که باید خوانده شود.
  • n تعداد بایت هایی است که باید از روی فایل باینری باید خواند.

مثال

ما ابتدا “mtcars” را که داده ی داخلی آر می باشد را در نظر می گیریم. ابتدا می توانیم یک فایل csv را از روی آن ایجاد کنیم و آن را به یک فایل باینری تبدیل نماییم و آن را به صورت یک فایل OS ذخیره کنیم. سپس این فایل باینری ایجاد شده در آر را می خوانیم.

نوشتن فایل باینری

ما فریم دیتای “mtcars” را به عنوان یک فایل csv می خوانیم و سپس آن را به عنوان یک فایل باینری برای سیستم عامل می نویسیم.

# Read the “mtcars” data frame as a csv file and store only the columns

“cyl”, “am” and “gear”.

write.table(mtcars, file = “mtcars.csv”,row.names = FALSE, na = “”,

col.names = TRUE, sep = “,”)

# Store 5 records from the csv file as a new data frame.

new.mtcars <- read.table(“mtcars.csv”,sep = “,”,header = TRUE,nrows = 5)

# Create a connection object to write the binary file using mode “wb”.

write.filename = file(“/web/com/binmtcars.dat”, “wb”)

# Write the column names of the data frame to the connection object.

writeBin(colnames(new.mtcars), write.filename)

# Write the records in each of the column to the file.

writeBin(c(new.mtcars$cyl,new.mtcars$am,new.mtcars$gear), write.filename)

# Close the file for writing so that it can be read by other program.

close(write.filename)

خواندن فایل باینری

فایل باینری ایجاد شده در بالا تمام داده ها را به شکل بایت های پیوسته دخیره می کند. بنابراین ما آن فایل را با انتخاب نام مناسب و مقادیر مناسب برای ستونها می خوانیم.

# Create a connection object to read the file in binary mode using “rb”.

read.filename <- file(“/web/com/binmtcars.dat”, “rb”)

# First read the column names. n = 3 as we have 3 columns.

column.names <- readBin(read.filename, character(), n = 3)

# Next read the column values. n = 18 as we have 3 column names and 15 values.

read.filename <- file(“/web/com/binmtcars.dat”, “rb”)

bindata <- readBin(read.filename, integer(), n = 18)

# Print the data.

print(bindata)

# Read the values from 4th byte to 8th byte which represents “cyl”.

cyldata = bindata[4:8]

print(cyldata)

# Read the values form 9th byte to 13th byte which represents “am”.

amdata = bindata[9:13]

print(amdata)

# Read the values form 9th byte to 13th byte which represents “gear”.

geardata = bindata[14:18]

print(geardata)

# Combine all the read values to a dat frame.

finaldata = cbind(cyldata, amdata, geardata)

colnames(finaldata) = column.names

print(finaldata)

زمانی که کد بالا را اجرا می کنیم؛ نتایج و نمودار زیر اجرا می شود:

[۱] ۷۱۰۸۹۶۳ ۱۷۲۸۰۸۱۲۴۹ ۷۴۹۶۰۳۷ ۶ ۶ ۴

[۷] ۶ ۸ ۱ ۱ ۱ ۰

[۱۳] ۰ ۴ ۴ ۴ ۳ ۳

[۱] ۶ ۶ ۴ ۶ ۸

[۱] ۱ ۱ ۱ ۰ ۰

[۱] ۴ ۴ ۴ ۳ ۳

cyl am gear

[۱,] ۶ ۱ ۴

[۲,] ۶ ۱ ۴

[۳,] ۴ ۱ ۴

[۴,] ۶ ۰ ۳

[۵,] ۸ ۰ ۳

همان طور که مشاهده می کنید؛ داده های اصلی را با خواندن فایل باینری در آر؛ بازگردانده ایم.

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

turned_in

چرب زبان

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


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

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

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

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

فهرست