R پر از انواع توابع است. در زیر ده مورد از جالب ترین آنها را که ممکن است بسیاری از آنها ندانند را ارائه خواهم کرد. این مقاله پس از آن منتشر شد که متوجه شدم داستانهای من در مورد برخی از ویژگیهای R که در کارم استفاده میکنم با اشتیاق مورد استقبال برنامهنویسان همکار قرار گرفت. اگر از قبل همه چیز را در این مورد می دانید، پس از اتلاف وقت شما عذرخواهی می کنم. در عین حال، اگر چیزی برای به اشتراک گذاشتن دارید، چیز مفیدی را در نظرات توصیه کنید.
یادآوری می کنیم:برای همه خوانندگان "Habr" - تخفیف 10 روبل هنگام ثبت نام در هر دوره Skillbox با استفاده از کد تبلیغاتی "Habr".
عملکرد سوئیچ
من واقعاً، واقعاً switch() را دوست دارم. در واقع، در هنگام انتخاب یک مقدار بر اساس مقدار متغیر دیگری، کوتاهنویسی مناسب برای دستور if است. من این را مخصوصاً زمانی مفید می دانم که در حال نوشتن کدی هستم که باید مجموعه خاصی از داده ها را بر اساس انتخاب قبلی بارگیری کند. برای مثال، اگر متغیری به نام حیوان دارید و میخواهید بسته به سگ، گربه یا خرگوش بودن حیوان، مجموعه خاصی از دادهها را انتخاب کنید، این را بنویسید:
این ویژگی در برنامههای براق که در آنها باید مجموعههای داده یا فایلهای محیطی مختلفی را بسته به یک یا چند آیتم منوی ورودی بارگیری کنید، مفید خواهد بود.
کلیدهای میانبر برای RStudio
این هک خیلی برای R نیست، بلکه برای RStudio IDE است. با این حال، کلیدهای میانبر همیشه بسیار راحت هستند و به شما امکان می دهند در زمان وارد کردن متن صرفه جویی کنید. موارد دلخواه من Ctrl+Shift+M برای عملگر %>% و Alt+- برای عملگر <- هستند.
برای مشاهده تمام کلیدهای میانبر، کافی است Alt+Shift+K را در RStudio فشار دهید.
پکیج فلکس داشبورد
زمانی که نیاز دارید داشبورد براق خود را به سرعت راه اندازی کنید، هیچ چیز بهتر از بسته داشبورد نیست. این امکان کار با میانبرهای HTML را فراهم می کند که به نوبه خود ایجاد ستون های کناری، ردیف ها و ستون ها را آسان و بدون دردسر می کند. همچنین امکان استفاده از نوار عنوان وجود دارد که به شما امکان می دهد آن را در صفحات مختلف برنامه قرار دهید، آیکون ها را بگذارید، میانبرها در Github، آدرس های ایمیل و موارد دیگر.
این بسته به شما امکان می دهد در چارچوب Rmarkdown کار کنید، بنابراین می توانید همه برنامه ها را در یک فایل Rmd قرار دهید و آنها را در سرورهای مختلف و فایل های UI توزیع نکنید، به عنوان مثال، با استفاده از shinydashboard. من از flexdashboard هر زمان که نیاز به ایجاد یک نمونه اولیه داشبورد ساده قبل از کار بر روی چیزی پیچیده داشته باشم استفاده می کنم. این ویژگی به شما امکان می دهد ظرف یک ساعت یک نمونه اولیه ایجاد کنید.
req و اعتبارسنجی توابع در R Shiny
توسعه در R Shiny میتواند گیجکننده باشد، بهخصوص زمانی که دائماً پیامهای خطای عجیبی دریافت میکنید که درک آنچه را که در جریان است دشوار میکند. اما با گذشت زمان، Shiny توسعه می یابد و بهبود می یابد، عملکردهای بیشتری در اینجا ظاهر می شود که به شما امکان می دهد علت خطا را درک کنید. بنابراین، req() مشکل را با یک خطای “silent” حل می کند، زمانی که به طور کلی مشخص نیست که چه اتفاقی می افتد. این به شما امکان می دهد عناصر رابط کاربری مرتبط با اقدامات قبلی را نمایش دهید. بیایید با یک مثال توضیح دهیم:
output$go_button < — shiny::renderUI({
فقط اگر ورودی حیوانی انتخاب شده باشد، دکمه نمایش #
validate() همه چیز را قبل از رندر بررسی می کند و به شما این امکان را می دهد که یک پیام خطا را چاپ کنید - به عنوان مثال، کاربر فایل اشتباهی را آپلود کرده است:
# فایل ورودی csv را دریافت کنید
inFile < — input$file1
داده < — inFile$datapath
# رندر جدول فقط اگر سگ باشد
shiny::renderTable({
# بررسی کنید که پرونده سگ باشد، نه گربه یا خرگوش
براق:: اعتبارسنجی(
need("نام سگ" %in% colnames(داده))،
"ستون Dog Name پیدا نشد - آیا فایل درستی را بارگذاری کردید؟"
)
اطلاعات کاربری خود را برای خود در محیط سیستم ذخیره کنید
اگر قصد دارید کدی را به اشتراک بگذارید که نیاز به وارد کردن اعتبار دارد، از محیط سیستم استفاده کنید تا از میزبانی اعتبار خود در Github یا سرویس دیگری جلوگیری کنید. نمونه قرارگیری:
تنظیم آنها به عنوان متغیرهای محیطی به طور مستقیم در سیستم عامل حتی راحت تر است (مخصوصاً اگر اغلب از داده ها استفاده می کنید). در این صورت آنها همیشه در دسترس خواهند بود و نیازی نیست آنها را در کد مشخص کنید.
با استایلر مرتب کردن را به صورت خودکار انجام دهید
بسته styler می تواند به شما کمک کند تا کد خود را پاک کنید؛ این بسته گزینه های زیادی برای آوردن خودکار سبک کد به tidyverse دارد. تنها کاری که باید انجام دهید این است که styler::style_file() را روی اسکریپت مشکل دار خود اجرا کنید. این بسته کارهای زیادی (اما نه همه چیز) برای بازگرداندن نظم انجام می دهد.
پارامترسازی اسناد R Markdown
بنابراین شما یک سند عالی R Markdown ایجاد کرده اید که در آن حقایق مختلف در مورد سگ ها را تجزیه و تحلیل می کنید. و سپس به ذهن شما خطور می کند که بهتر است همان کار را انجام دهید، اما فقط با گربه ها. مشکلی نیست، شما می توانید ایجاد گزارش گربه را تنها با یک دستور به صورت خودکار انجام دهید. برای انجام این کار، فقط باید سند نشانه گذاری R خود را پارامتر کنید.
می توانید این کار را با تنظیم پارامترهایی برای هدر YAML در سند مشخص شده و سپس تنظیم پارامترهای مقدار انجام دهید.
اکنون می توانید همه متغیرها را در کد سند به عنوان params$animal_name و params$years_of_study ثبت کنید. سپس از منوی کشویی Knit (یا knit_with_parameters()) استفاده می کنیم و می توانیم پارامترها را انتخاب کنیم.
آشکار می کند
discoverjs بستهای است که به شما امکان میدهد ارائههای عالی HTML با کد R داخلی، ناوبری بصری و منوهای اسلاید ایجاد کنید. میانبرهای HTML به شما این امکان را می دهند که به سرعت یک ساختار اسلاید تودرتو با گزینه های مختلف استایل ایجاد کنید. خوب، HTML بر روی هر دستگاهی اجرا می شود، بنابراین ارائه می تواند در هر تلفن، تبلت یا لپ تاپ باز شود. افشای اطلاعات را می توان با نصب بسته و فراخوانی آن در هدر YAML پیکربندی کرد. در اینجا یک مثال است:
— عنوان: "Edge of the People Analytics Universe"
نویسنده: "کیث مک نالتی"
خروجی:
discoverjs::revealjs_presentation:
مرکز: بله
template:starwars.html
موضوع: مشکی
تاریخ: «جلسه HR Analytics Meetup لندن – 18 مارس 2019»
منبع_فایل:
- darth.png
- deathstar.png
- hanchewy.png
- millennium.png
- r2d2-threepio.png
-starwars.html
- starwars.png
—stormtrooper.png
-
اکثر برنامه نویسان از تگ های HTML که R Shiny دارد استفاده کامل نمی کنند. اما اینها تنها 110 تگ هستند که امکان ایجاد یک تماس کوتاه برای عملکرد HTML یا پخش رسانه را فراهم می کند. به عنوان مثال، من اخیراً از tags$audio برای پخش صدای "پیروزی" استفاده کردم که به کاربر هنگام تکمیل یک کار هشدار می داد.
بسته ستایش
استفاده از این پکیج بسیار ساده است، اما برای نمایش تمجید به کاربر لازم است. عجیب به نظر می رسد، اما در واقع آن را دوست دارند.