{"id":9240,"date":"2019-11-14T16:03:42","date_gmt":"2019-11-14T10:33:42","guid":{"rendered":"http:\/\/ivyproschool.com\/blog\/?p=9240"},"modified":"2021-05-21T18:47:27","modified_gmt":"2021-05-21T13:17:27","slug":"writing-your-own-functions-in-r","status":"publish","type":"post","link":"https:\/\/ivyproschool.com\/blog\/writing-your-own-functions-in-r\/","title":{"rendered":"Writing Your Own Functions In R"},"content":{"rendered":"<p><a href=\"https:\/\/ivyproschool.com\/blog\/writing-your-own-functions-in-r\/\"><br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/ivyproschool.com\/blog\/wp-content\/uploads\/2015\/08\/Fresh-Aqua-Summit.png\" alt=\"write your own functions in R\" width=\"400\" height=\"200\" \/><\/a><\/p>\n<p>There is so much in common we do whenever we start writing an R script. Recently we have identified a few things which are pretty repetitive and it only helps if one function does it all. Lets see how we can run our own functions in R.<\/p>\n<p>The objective of publishing this article is to help those,<\/p>\n<ol>\n<li>Who write repeated lines of codes in every R script<\/li>\n<li>Who are willing to write their own Custom R functions<\/li>\n<\/ol>\n<p>There are so many times we receive data and we need to process that and store somewhere. Ideally, we should have our files organized as that helps us later in finding these files quicker and easier. I thought to myself, how would it be, if I could write a function which will automate the following tasks for me,<\/p>\n<ol>\n<li>Set Working Directory<\/li>\n<li>Turn off Scientific notations<\/li>\n<li>Set Version for files to be saved with a timestamp.<\/li>\n<li>Create Required folders, Input, Output, and Backup. It also creates a Time Stamp folder inside the Input folder.<\/li>\n<li>Moves all files to the Input directory for further processing.<\/li>\n<\/ol>\n<p>All I need to do is create one folder and dump all files there and run the function in an R script stored in that folder.<\/p>\n<p>[php]do_all_req_stuff&amp;lt;-function(){<\/p>\n<p>libraries&amp;lt;&amp;lt;-c(&quot;tidyverse&quot;,&quot;filesstrings&quot;,&quot;tools&quot;)<\/p>\n<p>a&amp;lt;-suppressWarnings(sapply(libraries,require,character.only=T))<\/p>\n<p>unlib&amp;lt;-c()<\/p>\n<p>if(FALSE %in% suppressWarnings(sapply(libraries,require,character.only=T))){<\/p>\n<p>unlib&amp;lt;-c(unlib,names(a[grep(FALSE,a)]))<\/p>\n<p>install.packages(unlib,dependencies = T)<\/p>\n<p>print(sapply(libraries,require,character.only=T))<\/p>\n<p>}else{<\/p>\n<p>print(sapply(libraries,require,character.only=T))<\/p>\n<p>}<\/p>\n<p>######Setting Work Directory===Disabling Scientific Notations===Creating Required Directories===Define Version#####<\/p>\n<p>cdir&amp;lt;&amp;lt;-(dirname(rstudioapi::getSourceEditorContext()$path))<\/p>\n<p>setwd(cdir)<\/p>\n<p>options(scipen = 999)<\/p>\n<p>v&amp;lt;&amp;lt;-paste0(format(Sys.Date(),&quot;%b_%d_%Y&quot;))<\/p>\n<p>##########################################Required Directories##############################################<\/p>\n<p>input_directory&amp;lt;&amp;lt;-paste0(cdir,&quot;\/&quot;,&quot;Input&quot;)<\/p>\n<p>output_directory&amp;lt;&amp;lt;-paste0(cdir,&quot;\/&quot;,&quot;Output&quot;)<\/p>\n<p>backup_directory&amp;lt;&amp;lt;-paste0(cdir,&quot;\/&quot;,&quot;Backup&quot;)<\/p>\n<p>input_timestamp&amp;lt;&amp;lt;-paste0(input_directory,&quot;\/&quot;,v)<\/p>\n<p>list_of_directories&amp;lt;-c(input_directory,output_directory,backup_directory,input_timestamp)<\/p>\n<p>#####Create Required Directories######<\/p>\n<p>for(i in list_of_directories){<\/p>\n<p>if(dir.exists(i)==F)<\/p>\n<p>{<\/p>\n<p>dir.create(i)<\/p>\n<p>print(paste(i,&quot;created&#8230;&quot;))<\/p>\n<p>}<\/p>\n<p>else<\/p>\n<p>{<\/p>\n<p>print(paste(&quot;Directory:&quot;,i, &quot;already Exists&#8230;&quot;))<\/p>\n<p>next<\/p>\n<p>}<\/p>\n<p>}<br \/>\n&lt;\/pre&gt;<br \/>\n#############Copy Files from cdir to input###############<\/p>\n<p>files&amp;lt;&amp;lt;-grep(list.files(cdir,recursive = F), pattern=&#8217;.R&#8217;, inv=T, value=T) ####You can use the pattern as per need###<\/p>\n<p>dirs&amp;lt;-list.dirs(cdir,full.names = F) %&amp;gt;% .[2:length(.)]<\/p>\n<p>files&amp;lt;&amp;lt;-setdiff(files,dirs)<\/p>\n<p>C=0<\/p>\n<p>if(length(files)==0){<\/p>\n<p>print(&quot;No files to move to Input Directory!&quot;)<\/p>\n<p>}else{<\/p>\n<p>for(i in files){<\/p>\n<p>C=C+1<\/p>\n<p>file.move(paste0(cdir,&quot;\/&quot;,files[C]),input_timestamp)<\/p>\n<p>print(paste(files[C],&quot;moved to Destination Folder&#8230;&quot;))<\/p>\n<p>}<\/p>\n<p>if(C==length(files)){<\/p>\n<p>print(&quot;All Files Moved&#8230;&quot;)<\/p>\n<p># print(paste(&quot;Setting value of C to Default&quot;))<\/p>\n<p>C=0<\/p>\n<p># print(paste(&quot;C =&quot;,C))<\/p>\n<p>}<\/p>\n<p>}<\/p>\n<p>}<\/p>\n<p>do_all_req_stuff()<br \/>\n[\/php]<\/p>\n<p>We can always modify this function to meet our specific needs, for example, someone might want to load all required libraries along with this function can add an optional argument to the function and within the function, they can specify the following line of code.<\/p>\n<p>By default, it does load a specific set of libraries we need to create this function. As an alternative and probably an easier option one can simply add the required set of libraries in the &#8220;libraries&#8221; vector inside the function.<\/p>\n<p>[php]<\/p>\n<p>#######This helps in loading all required libraries in one go#######<\/p>\n<p>#### Make sure the argument supplied is a vector of all required libraries ####<\/p>\n<p>&amp;amp;nbsp;<\/p>\n<p>argument_to_be_supplied&amp;lt;-c(&quot;tidyverse&quot;,&quot;zoo&quot;,&#8230;) &amp;lt;-Specify this outside the function<\/p>\n<p>&amp;amp;nbsp;<\/p>\n<p>sapply(argument_to_be_supplied, require, character.only=T) &amp;lt;-Add this step inside the function<\/p>\n<p>[\/php]<\/p>\n<p>I hope this article helps some of you at least in automating these minor tasks with the help of one single function and also maintaining a proper folder structure for good data management.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>There is so much in common we do whenever we start writing an R script. Recently we have identified a few things which are pretty repetitive and it only helps if one function does it all. Lets see how we can run our own functions in R. The objective of publishing this article is to help those, Who write repeated lines of codes in every R script Who are willing to write their own Custom R functions There are so many times we receive data and we need to process that and store somewhere. Ideally, we should have our files organized as that helps us later in finding these files quicker and easier. I thought to myself, how would it be, if I could write a function which will automate the following tasks for me, Set Working Directory Turn off Scientific notations Set Version for files to be saved with a timestamp. Create Required folders, Input, Output, and Backup. It also creates a Time Stamp folder inside the Input folder. Moves all files to the Input directory for further processing. All I need to do is create one folder and dump all files there and run the function in an [&hellip;]<\/p>\n","protected":false},"author":1001944,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[56,738,230,467,737,369],"class_list":["post-9240","post","type-post","status-publish","format-standard","hentry","category-data-analytics","tag-big-data-analytics","tag-coding","tag-data-analytics","tag-data-science","tag-functions","tag-r"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Write Your Own Functions In R | Ivy Professional School<\/title>\n<meta name=\"description\" content=\"Writing Your Own Functions In R is something that all Data Scientists have experience on. Read the Aarticle now, for more information on this topic.Read Now\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/ivyproschool.com\/blog\/writing-your-own-functions-in-r\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Write Your Own Functions In R | Ivy Professional School\" \/>\n<meta property=\"og:description\" content=\"Writing Your Own Functions In R is something that all Data Scientists have experience on. Read the Aarticle now, for more information on this topic.Read Now\" \/>\n<meta property=\"og:url\" content=\"https:\/\/ivyproschool.com\/blog\/writing-your-own-functions-in-r\/\" \/>\n<meta property=\"og:site_name\" content=\"R vs Python: Which Analytics Tool Should You Choose for Data Science?\" \/>\n<meta property=\"article:published_time\" content=\"2019-11-14T10:33:42+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-05-21T13:17:27+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/ivyproschool.com\/blog\/wp-content\/uploads\/2015\/08\/Fresh-Aqua-Summit.png\" \/>\n<meta name=\"author\" content=\"Anubinda\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Anubinda\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/ivyproschool.com\\\/blog\\\/writing-your-own-functions-in-r\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/ivyproschool.com\\\/blog\\\/writing-your-own-functions-in-r\\\/\"},\"author\":{\"name\":\"Anubinda\",\"@id\":\"https:\\\/\\\/ivyproschool.com\\\/blog\\\/#\\\/schema\\\/person\\\/2bc5b4bcba5e1696d75ce6924ed8ff13\"},\"headline\":\"Writing Your Own Functions In R\",\"datePublished\":\"2019-11-14T10:33:42+00:00\",\"dateModified\":\"2021-05-21T13:17:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/ivyproschool.com\\\/blog\\\/writing-your-own-functions-in-r\\\/\"},\"wordCount\":742,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/ivyproschool.com\\\/blog\\\/writing-your-own-functions-in-r\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/ivyproschool.com\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/08\\\/Fresh-Aqua-Summit.png\",\"keywords\":[\"Big Data analytics\",\"coding\",\"data analytics\",\"data science\",\"functions\",\"R\"],\"articleSection\":[\"Data Analytics\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/ivyproschool.com\\\/blog\\\/writing-your-own-functions-in-r\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/ivyproschool.com\\\/blog\\\/writing-your-own-functions-in-r\\\/\",\"url\":\"https:\\\/\\\/ivyproschool.com\\\/blog\\\/writing-your-own-functions-in-r\\\/\",\"name\":\"Write Your Own Functions In R | Ivy Professional School\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/ivyproschool.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/ivyproschool.com\\\/blog\\\/writing-your-own-functions-in-r\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/ivyproschool.com\\\/blog\\\/writing-your-own-functions-in-r\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/ivyproschool.com\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/08\\\/Fresh-Aqua-Summit.png\",\"datePublished\":\"2019-11-14T10:33:42+00:00\",\"dateModified\":\"2021-05-21T13:17:27+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/ivyproschool.com\\\/blog\\\/#\\\/schema\\\/person\\\/2bc5b4bcba5e1696d75ce6924ed8ff13\"},\"description\":\"Writing Your Own Functions In R is something that all Data Scientists have experience on. Read the Aarticle now, for more information on this topic.Read Now\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/ivyproschool.com\\\/blog\\\/writing-your-own-functions-in-r\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/ivyproschool.com\\\/blog\\\/writing-your-own-functions-in-r\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/ivyproschool.com\\\/blog\\\/writing-your-own-functions-in-r\\\/#primaryimage\",\"url\":\"https:\\\/\\\/ivyproschool.com\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/08\\\/Fresh-Aqua-Summit.png\",\"contentUrl\":\"https:\\\/\\\/ivyproschool.com\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/08\\\/Fresh-Aqua-Summit.png\",\"width\":400,\"height\":200,\"caption\":\"write your own functions in R\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/ivyproschool.com\\\/blog\\\/writing-your-own-functions-in-r\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/ivyproschool.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Writing Your Own Functions In R\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/ivyproschool.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/ivyproschool.com\\\/blog\\\/\",\"name\":\"Ivy Professional School | Official Blog\",\"description\":\"Confused between R and Python for your data science journey? Discover the key differences in data visualization, handling capabilities, speed, and ease of learning.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/ivyproschool.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/ivyproschool.com\\\/blog\\\/#\\\/schema\\\/person\\\/2bc5b4bcba5e1696d75ce6924ed8ff13\",\"name\":\"Anubinda\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2feb5b53215dd696c5aa800e5d4491f5402ef5f8647b9a2a6b9fe300a5885e9d?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2feb5b53215dd696c5aa800e5d4491f5402ef5f8647b9a2a6b9fe300a5885e9d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2feb5b53215dd696c5aa800e5d4491f5402ef5f8647b9a2a6b9fe300a5885e9d?s=96&d=mm&r=g\",\"caption\":\"Anubinda\"},\"url\":\"https:\\\/\\\/ivyproschool.com\\\/blog\\\/author\\\/anubinda\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Write Your Own Functions In R | Ivy Professional School","description":"Writing Your Own Functions In R is something that all Data Scientists have experience on. Read the Aarticle now, for more information on this topic.Read Now","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/ivyproschool.com\/blog\/writing-your-own-functions-in-r\/","og_locale":"en_US","og_type":"article","og_title":"Write Your Own Functions In R | Ivy Professional School","og_description":"Writing Your Own Functions In R is something that all Data Scientists have experience on. Read the Aarticle now, for more information on this topic.Read Now","og_url":"https:\/\/ivyproschool.com\/blog\/writing-your-own-functions-in-r\/","og_site_name":"R vs Python: Which Analytics Tool Should You Choose for Data Science?","article_published_time":"2019-11-14T10:33:42+00:00","article_modified_time":"2021-05-21T13:17:27+00:00","og_image":[{"url":"https:\/\/ivyproschool.com\/blog\/wp-content\/uploads\/2015\/08\/Fresh-Aqua-Summit.png","type":"","width":"","height":""}],"author":"Anubinda","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Anubinda","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/ivyproschool.com\/blog\/writing-your-own-functions-in-r\/#article","isPartOf":{"@id":"https:\/\/ivyproschool.com\/blog\/writing-your-own-functions-in-r\/"},"author":{"name":"Anubinda","@id":"https:\/\/ivyproschool.com\/blog\/#\/schema\/person\/2bc5b4bcba5e1696d75ce6924ed8ff13"},"headline":"Writing Your Own Functions In R","datePublished":"2019-11-14T10:33:42+00:00","dateModified":"2021-05-21T13:17:27+00:00","mainEntityOfPage":{"@id":"https:\/\/ivyproschool.com\/blog\/writing-your-own-functions-in-r\/"},"wordCount":742,"commentCount":0,"image":{"@id":"https:\/\/ivyproschool.com\/blog\/writing-your-own-functions-in-r\/#primaryimage"},"thumbnailUrl":"https:\/\/ivyproschool.com\/blog\/wp-content\/uploads\/2015\/08\/Fresh-Aqua-Summit.png","keywords":["Big Data analytics","coding","data analytics","data science","functions","R"],"articleSection":["Data Analytics"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/ivyproschool.com\/blog\/writing-your-own-functions-in-r\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/ivyproschool.com\/blog\/writing-your-own-functions-in-r\/","url":"https:\/\/ivyproschool.com\/blog\/writing-your-own-functions-in-r\/","name":"Write Your Own Functions In R | Ivy Professional School","isPartOf":{"@id":"https:\/\/ivyproschool.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/ivyproschool.com\/blog\/writing-your-own-functions-in-r\/#primaryimage"},"image":{"@id":"https:\/\/ivyproschool.com\/blog\/writing-your-own-functions-in-r\/#primaryimage"},"thumbnailUrl":"https:\/\/ivyproschool.com\/blog\/wp-content\/uploads\/2015\/08\/Fresh-Aqua-Summit.png","datePublished":"2019-11-14T10:33:42+00:00","dateModified":"2021-05-21T13:17:27+00:00","author":{"@id":"https:\/\/ivyproschool.com\/blog\/#\/schema\/person\/2bc5b4bcba5e1696d75ce6924ed8ff13"},"description":"Writing Your Own Functions In R is something that all Data Scientists have experience on. Read the Aarticle now, for more information on this topic.Read Now","breadcrumb":{"@id":"https:\/\/ivyproschool.com\/blog\/writing-your-own-functions-in-r\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/ivyproschool.com\/blog\/writing-your-own-functions-in-r\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ivyproschool.com\/blog\/writing-your-own-functions-in-r\/#primaryimage","url":"https:\/\/ivyproschool.com\/blog\/wp-content\/uploads\/2015\/08\/Fresh-Aqua-Summit.png","contentUrl":"https:\/\/ivyproschool.com\/blog\/wp-content\/uploads\/2015\/08\/Fresh-Aqua-Summit.png","width":400,"height":200,"caption":"write your own functions in R"},{"@type":"BreadcrumbList","@id":"https:\/\/ivyproschool.com\/blog\/writing-your-own-functions-in-r\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/ivyproschool.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Writing Your Own Functions In R"}]},{"@type":"WebSite","@id":"https:\/\/ivyproschool.com\/blog\/#website","url":"https:\/\/ivyproschool.com\/blog\/","name":"Ivy Professional School | Official Blog","description":"Confused between R and Python for your data science journey? Discover the key differences in data visualization, handling capabilities, speed, and ease of learning.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/ivyproschool.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/ivyproschool.com\/blog\/#\/schema\/person\/2bc5b4bcba5e1696d75ce6924ed8ff13","name":"Anubinda","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/2feb5b53215dd696c5aa800e5d4491f5402ef5f8647b9a2a6b9fe300a5885e9d?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/2feb5b53215dd696c5aa800e5d4491f5402ef5f8647b9a2a6b9fe300a5885e9d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2feb5b53215dd696c5aa800e5d4491f5402ef5f8647b9a2a6b9fe300a5885e9d?s=96&d=mm&r=g","caption":"Anubinda"},"url":"https:\/\/ivyproschool.com\/blog\/author\/anubinda\/"}]}},"_links":{"self":[{"href":"https:\/\/ivyproschool.com\/blog\/wp-json\/wp\/v2\/posts\/9240","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ivyproschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ivyproschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ivyproschool.com\/blog\/wp-json\/wp\/v2\/users\/1001944"}],"replies":[{"embeddable":true,"href":"https:\/\/ivyproschool.com\/blog\/wp-json\/wp\/v2\/comments?post=9240"}],"version-history":[{"count":0,"href":"https:\/\/ivyproschool.com\/blog\/wp-json\/wp\/v2\/posts\/9240\/revisions"}],"wp:attachment":[{"href":"https:\/\/ivyproschool.com\/blog\/wp-json\/wp\/v2\/media?parent=9240"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ivyproschool.com\/blog\/wp-json\/wp\/v2\/categories?post=9240"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ivyproschool.com\/blog\/wp-json\/wp\/v2\/tags?post=9240"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}