علاقه مند به تحلیل داده و داده کاوی. لینکدین:https://www.linkedin.com/in/mohammad-fatehi-09654062/
خانواده apply
از مهمترین دلايل زمان طولانی اجرای برنامه ها، وجود حلقه زياد يا حلقه های تو در تو در بدنه کدها است. رويكرد معمول در چنين شرايطی، استفاده از توابع ساخت يافته تر در جهت به حداقل رساندن تعداد حلقه ها است. خانواده apply در R Language از مجموعه توابع ساخت یافته است.
تابع apply
ساختار پيش فرض تابع apply به صورت
apply(X, MARGIN, FUN)
مولفه اول (X) یک آرایه یا ماتریس است.
اگر MARGIN برابر 1 باشد عملیات به صورت سطری و اگر برابر 2 باشد عملیات به صورت ستونی انجام می شود. چنانچه این مقدار برابر c(1,2) باشد عملیات به صورت سطری و ستونی انجام می پذیرد.
در مولفه FUN تابعی را که قصد داریم روی X پیاده سازی شود، را وارد می کنیم.
ماتریس زیر را در نظر بگیرید:
m1 <- matrix(C<-(1:10) ,nrow=5, ncol= 6)
این ماتریس به شکل زیر است:
1 6 1 6 1 6
2 7 2 7 2 7
3 8 3 8 3 8
4 9 4 9 4 9
5 10 5 10 5 10
با استفاده از تابع apply می خواهیم جمع ستونی این ماتریس را محاسبه کنیم:
a_m1 <- apply (m1, 2, sum)
خروجی قطعه کد بالا به صورت زیر است:
15 40 15 40 15 40
توابع lapply و sapply
ساختار این توابع به شکل زیر است:
sapply(X, FUN)
lapply(X, FUN)
تابع lapply روی فهرست ها و در حالت کلی بر روی انواع اشیا قابل استفاده است. (l در lapply نشانگر list است)
در این تابع نیاز به مشخص کردن جهت (ستونی، سطری و...) نیست و فقط به یک تابع (شناسه FUN) نیاز است چرا که هر مولفه فهرست یا بردار به عنوان شناسه تابع استفاده می شود. به هر حال تابع lapply همیشه یک فهرست را برمی گرداند. اما اگر بخواهیم یک بردار یا ماتریس داشته باشیم از sapply برای تبدیل خروجی تابع lapply استفاده می کنیم (s در sapply نشانگر simplify است). تابع sapply کاراتر از تابع lapply است.
مطلبی دیگر از این انتشارات
بررسی نقش رایانش مه در ساخت سیستم های حمل و نقل هوشمند
مطلبی دیگر از این انتشارات
تحلیل شبکههای اجتماعی در داده کاوی
مطلبی دیگر از این انتشارات
هوش مصنوعی در صنعت بازی سازی