آر (زبان برنامهنویسی)
R، یک زبان برنامهنویسی و محیط نرمافزاری برای محاسبات آماری و علم دادهها است، که بر اساس زبانهای اس و اسکیم پیادهسازی شدهاست. این نرمافزار متن باز، تحت اجازهنامه عمومی همگانی گنو عرضه شده و به رایگان قابل دسترس است. کاربران بسته (Package) های زیادی را برای افزودن توابع متنوع به این زبان به وجود آورده اند.
پارادایمهای برنامهنویسی | چندالگویی: رویهای، شیءگرا، تابعی، پژواکی، دستوری، آرایهای |
---|---|
طراحی شده توسط | راس ایهاکا و رابرت جنتلمن |
توسعهدهنده | R Core Team |
ظهوریافته در | اوت ۱۹۹۳ |
انتشار پایدار | 4.2.2
۳۱ اکتبر ۲۰۲۲ |
پویا | |
پروانه | GNU GPL v2 |
| |
وبگاه | |
متأثر از | |
تأثیر گذاشته بر | |
Julia | |
زبان اس بجز R، توسط شرکت Insightful، در نرمافزار تجاری اسپلاس نیز پیادهسازی شدهاست. اگرچه دستورها اسپلاس و R بسیار شبیه است لیکن این دو نرمافزار دارای هستههای متمایزی میباشند.
نویسندگان
نرمافزار R برای اولین بار به عنوان یک پروژه تحقیقاتی توسط راس ایهاکا (Ross Ihaka) و رابرت جنتلمن (Robert Gentleman) نوشته شد، و در حال حاضر توسط گروهی از متخصصان علم آمار به نام «تیم هسته نرمافزار R» با صفحهای در آدرس www.r-project.org در حال توسعهٔ فعال میباشد.
ویژگیها
R، حاوی محدودهٔ گستردهای از تکنیکهای آماری (از جمله: مدلسازی خطی و غیرخطی، آزمونهای کلاسیک آماری، تحلیل سریهای زمانی، ردهبندی، خوشهبندی و غیره) و قابلیتهای گرافیکی است. در محیط R، کدهای ویژوال بیسیک، سی، سی++ و فورترن قابلیت اتصال و فراخوانی هنگام اجرای برنامه را دارند و کاربران خبره میتوانند توسط کدهای سی، مستقیماً اشیا R را تغییر دهند.
گرچه نرمافزار R اغلب به منظور انجام محاسبات آماری به کار میرود، این نرمافزار قابل بهکارگیری در محاسبات ماتریسی است و در این زمینه، همپای نرمافزارهایی چون آکتیو و نسخهٔ تجاری آن متلب (MATLAB) است.
R، همچنین نرمافزار قدرتمندی برای ایجاد اشکال گرافیکی و نمودارهاست.
بستهها
امکان توسعهٔ قابلیتهای R، با افزودن بستههای ایجاد شده توسط کاربران آن، یکی از ویژگیهای مهم این نرمافزار است. این بستهها توسط R، LaTeX، جاوا، سی++ و فورترن نوشته شدهاند. برای کمتر کردن حجم نرمافزار بخاطر سهولت دریافت آن، مجموعهای از بستههای اصلی R، هنگام نصب همراه برنامه وجود دارند، کاربران میتوانند در صورت نیاز به برنامهای خاص، بسته مربوط را نصب و از آن استفاده نمایند. در مجموع ۴۴۴۲ بسته (تا آوریل ۲۰۱۳) در شبکهٔ بایگانی فراگیر آر (CRAN) وجود دارد. این بستهها طیف وسیعی از قابلیتها را در زمینههای مختلف تحلیل دادهها به R میدهند.
انجمن ها
R، انجمن هایی محلی در سراسر جهان برای برنامه نویس ها دارد که با هم در ارتباط باشند، ایده هایشان را در میان بگذارند و از هم یاد بگیرند. برنامهها و جلسات فزایندهای در جریانند که برنامه نویسهای R را گرد هم میآورند، مانند کنفرانسها (به عنوان مثال useR!, WhyR?, conectaR, SatRdays)، گردهمآیی ها و گرو ههای دختران برنامه نویس R که تنوع جنسیتی را ارج مینهد.
ابزار جانبی
R، دارای محیط خط فرمان برای ورود و اجرای دستورها است. ابزار مختلفی جهت تسهیل ویرایش دستورها و ارتباط با کاربر برای R ساخته شدهاست، که برخی از آنها در فهرست زیر آمدهاند:
- JGR: ویرایشگر چندسکویی بر پایهٔ جاوا.
- R Commander: رابط گرافیکی بر پایهٔ tcltk، دارای قابلیت استفاده از منوها به جای نوشتن دستورها (مناسب برای کاربران مبتدی و آشنا با اسپلاس)
- آراکسل RExcel: امکان استفاده از R و R Commander در برنامهٔ مایکروسافت مایکروسافت اکسل
- rggobi: رابط برنامهٔ GGobi برای به تصویر کشیدن دادههای ماتریسی
مثال
کد کوتاهی که با زبان آر نوشته شده برای مجموعه مندلبرو که ۲۰ تکرار از z = z² + c را با ضابطهای پیچیده متفاوت نمایش میدهد.
library(caTools) # external package providing write.gif function
jet.colors <- colorRampPalette(c("#00007F", "blue", "#007FFF", "cyan", "#7FFF7F",
"yellow", "#FF7F00", "red", "#7F0000"))
m <- 1200 # define size
C <- complex(real=rep(seq(-1.8,0.6, length.out=m), each=m),
imag=rep(seq(-1.2,1.2, length.out=m), m))
C <- matrix(C,m,m) # reshape as square matrix of complex numbers
Z <- 0 # initialize Z to zero
X <- array(0, c(m,m,20)) # initialize output 3D array
for (k in 1:20) { # loop with 20 iterations
Z <- Z^2+C # the central difference equation
X[,,k] <- exp(-abs(Z)) # capture results
}
write.gif(X, "Mandelbrot.gif", col=jet.colors, delay=100)
جستارهای وابسته
پانویس
- ↑ Morandat, Frances; Hill, Brandon; Osvald, Leo; Vitek, Jan (June 11, 2012). "Evaluating the design of the R language: objects and functions for data analysis". European Conference on Object-Oriented Programming. 2012: 104–131. doi:10.1007/978-3-642-31057-7_6. Retrieved 2016-05-17 – via SpringerLink.
- ↑ "R 4.2.2 is released". 31 اکتبر 2022. Retrieved 2 November 2022.
- ↑ "R scripts". mercury.webster.edu. Retrieved 2021-07-17.
- ↑ "R Data Format Family (.rdata, .rda)". www.loc.gov. 2017-06-09. Retrieved 2021-07-17.
- ↑ Khomtchouk, Bohdan B.; Weitz, Edmund; Karp, Peter D.; Wahlestedt, Claes (2016-12-31). "How the strengths of Lisp-family languages facilitate building complex and flexible bioinformatics applications". Briefings in Bioinformatics (به انگلیسی). 19 (3): 537–543. doi:10.1093/bib/bbw130. ISSN 1467-5463. PMC 5952920. PMID 28040748.
- ↑ "Introduction". The Julia Manual. Archived from the original on 20 June 2018. Retrieved 5 August 2018.
- ↑ «"Speed comparison of various number crunching packages (version 2)". SciView. Retrieved on 2007-11-03». بایگانیشده از اصلی در ۸ اوت ۲۰۰۹. دریافتشده در ۱۹ ژوئیه ۲۰۰۹.
- ↑ "CRAN package repository". Retrieved on 2013-04-10.
- ↑ "Local R User Group Directory". Revolutions Blog. Retrieved 12 May 2018.
- ↑ A list of R conferences and meetings. Jumping Rivers. Retrieved 12 May 2018.
- ↑ "official website of WhyR? conference". WhyR?. Retrieved 26 June 2019.
- ↑ "SatRdays listing". SatRdays. Retrieved 26 June 2019.
- ↑ "R Project for Statistical Computing". Meetup. Retrieved 12 May 2018.
- ↑ "R Ladies". R Ladies. Retrieved 12 May 2018.
پیوند به بیرون
- R-project.org (وبگاه رسمی پروژه آر)
- RSeek - (موتور جستجوی اختصاصی زبان آر)
- Quick-R (توضیح توابع آماری پرکاربرد در آر)
- [۱] (دربارهٔ زبان R)