فایل باینری (Binary file) فایلی است که اطلاعات را تنها به صورت بیت و بایت (۰ و ۱) ذخیره میکند. این فایلها برای انسان قابل خواندن نیستند، زیرا بایتهای موجود در آن به کاراکترها و نمادهایی تبدیل میشوند که بسیاری از آنها غیرقابل چاپ هستند. اگر یک فایل باینری را با ویرایشگر متن باز کنید، کاراکترهایی مانند Ø یا ð نمایش داده میشوند.
فقط برنامههای خاص میتوانند فایل باینری را بخوانند و از آن استفاده کنند. به عنوان مثال، فایل باینری Word تنها در محیط Word به متن قابل فهم تبدیل میشود. این نشان میدهد که به جز متن ساده، اطلاعاتی مانند قالببندی و شمارهگذاری صفحهها هم داخل فایل نگهداری میشود. در نتیجه، فایل باینری چیزی جز یک رشته متوالی از بایتها نیست. در حالیکه در فایل متنی، شکست خط (line break) یک کاراکتر است که خط اول را به خط بعدی متصل میکند. گاهی اوقات دادههایی که توسط برنامههای دیگر تولید شدهاند، باید در محیط R به صورت فایل باینری پردازش شوند. همچنین، R نیاز دارد فایلهای باینری ایجاد کند تا بتوان آنها را با دیگر برنامهها به اشتراک گذاشت.
زبان R دو تابع writeBin() و readBin() برای ایجاد و خواندن فایلهای باینری فراهم کرده است.
دستور نحوی (Syntax)
1 2 |
writeBin(object, con) readBin(con, what, n ) |
توضیح پارامترها:
-
con: شیء اتصال (connection object) برای خواندن یا نوشتن فایل باینری.
-
object: فایل یا دادهای که باید در قالب باینری نوشته شود.
-
what: حالت داده مانند character یا integer که نوع بایتهای خواندهشده را مشخص میکند.
-
n: تعداد بایتهایی که باید از فایل باینری خوانده شوند.
مثال
در این مثال از داده درونی R به نام "mtcars"
استفاده میکنیم. ابتدا یک فایل CSV از آن ایجاد کرده و سپس آن را به فایل باینری تبدیل میکنیم و در سیستم ذخیره مینماییم. در مرحله بعد، فایل باینری ایجادشده را دوباره در محیط R میخوانیم.
نوشتن فایل باینری در زبان R
در این بخش، دیتا فریم mtcars را به صورت فایل CSV مینویسیم و سپس آن را به فایل باینری تبدیل میکنیم و در سیستم عامل ذخیره میکنیم.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# داده mtcars را به صورت فایل csv ذخیره کنید (شامل تمام ستونها). write.table(mtcars, file = "mtcars.csv", row.names = FALSE, na = "", col.names = TRUE, sep = ",") # تنها 5 رکورد نخست فایل csv را به یک داده فریم جدید بخوانید. new.mtcars <- read.table("mtcars.csv", sep = ",", header = TRUE, nrows = 5) # ایجاد یک شیء اتصال (connection object) برای نوشتن فایل باینری با حالت "wb". write.filename = file("/web/com/binmtcars.dat", "wb") # نوشتن نام ستونهای داده فریم در فایل باینری. writeBin(colnames(new.mtcars), write.filename) # نوشتن مقادیر موجود در ستونها در فایل باینری. writeBin(c(new.mtcars$cyl, new.mtcars$am, new.mtcars$gear), write.filename) # بستن فایل تا برای سایر برنامهها قابل خواندن باشد. close(write.filename) |
خواندن فایل باینری در زبان R
فایل باینری ایجادشده تمام دادهها را به صورت بایتهای پیوسته ذخیره کرده است. بنابراین برای خواندن آن باید مقادیر ستونها و نام ستونها را با دقت مشخص کنیم.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# ایجاد شیء اتصال برای خواندن فایل در حالت باینری "rb". read.filename <- file("/web/com/binmtcars.dat", "rb") # ابتدا نام ستونها را بخوانید. n = 3 چون سه ستون داریم. column.names <- readBin(read.filename, character(), n = 3) # سپس مقادیر ستونها را بخوانید. n = 18 چون سه ستون و 15 مقدار داریم. read.filename <- file("/web/com/binmtcars.dat", "rb") bindata <- readBin(read.filename, integer(), n = 18) # چاپ دادههای خوانده شده. print(bindata) # خواندن مقادیر از بایت 4 تا 8 که ستون "cyl" را نشان میدهد. cyldata = bindata[4:8] print(cyldata) # خواندن مقادیر از بایت 9 تا 13 که ستون "am" را نشان میدهد. amdata = bindata[9:13] print(amdata) # خواندن مقادیر از بایت 14 تا 18 که ستون "gear" را نشان میدهد. geardata = bindata[14:18] print(geardata) # ترکیب تمام مقادیر خوانده شده در یک داده فریم. finaldata = cbind(cyldata, amdata, geardata) colnames(finaldata) = column.names print(finaldata) |
وقتی کد بالا را اجرا میکنیم، نتیجه و نمودار زیر را تولید میکند:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
[1] 7108963 1728081249 7496037 6 6 4 [7] 6 8 1 1 1 0 [13] 0 4 4 4 3 3 [1] 6 6 4 6 8 [1] 1 1 1 0 0 [1] 4 4 4 3 3 cyl am gear [1,] 6 1 4 [2,] 6 1 4 [3,] 4 1 4 [4,] 6 0 3 [5,] 8 0 3 |
همانطور که مشاهده میکنید، داده اصلی با موفقیت از فایل باینری در محیط R بازسازی شد.
راستی! برای دریافت مطالب جدید در کانال تلگرام یا پیج اینستاگرام سورس باران عضو شوید.
- انتشار: ۲۵ شهریور ۱۴۰۴
دسته بندی موضوعات
- آموزش ارز دیجیتال
- آموزش برنامه نویسی
- آموزش متنی برنامه نویسی
- اطلاعیه و سایر مطالب
- پروژه برنامه نویسی
- دوره های تخصصی برنامه نویسی
- رپورتاژ
- فیلم های آموزشی
- ++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
- اچ تی ام ال
- بانک اطلاعاتی
- برنامه نویسی سوکت
- برنامه نویسی موبایل
- پاسکال
- پایان نامه
- پایتون
- جاوا
- جاوا اسکریپت
- جی کوئری
- داده کاوی
- دلفی
- رباتیک
- سئو
- سایر کتاب ها
- سخت افزار
- سی اس اس
- سی پلاس پلاس
- سی شارپ
- طراحی الگوریتم
- فتوشاپ
- مقاله
- مهندسی نرم افزار
- هک و امنیت
- هوش مصنوعی
- ویژوال بیسیک
- نرم افزار و ابزار برنامه نویسی
- وردپرس