{"id":7238,"date":"2018-10-01T21:43:40","date_gmt":"2018-10-01T21:43:40","guid":{"rendered":"https:\/\/www.datanovia.com\/en\/?post_type=dt_lessons&#038;p=7238"},"modified":"2019-07-18T23:14:11","modified_gmt":"2019-07-18T21:14:11","slug":"compute-and-add-new-variables-to-a-data-frame-in-r","status":"publish","type":"dt_lessons","link":"https:\/\/www.datanovia.com\/en\/lessons\/compute-and-add-new-variables-to-a-data-frame-in-r\/","title":{"rendered":"Compute and Add new Variables to a Data Frame in R"},"content":{"rendered":"<div id=\"rdoc\">\n<p>This tutorial describes how to compute and <strong>add new variables<\/strong> to a <strong>data frame<\/strong> in <strong>R<\/strong>. You will learn the following R functions from the <code>dplyr<\/code> R package:<\/p>\n<ul>\n<li><strong>mutate<\/strong>(): compute and add new variables into a data table. It preserves existing variables.<\/li>\n<li><strong>transmute<\/strong>(): compute new columns but drop existing variables.<\/li>\n<\/ul>\n<p>We\u2019ll also present three variants of <strong>mutate<\/strong>() and <strong>transmute<\/strong>() to modify multiple columns at once:<\/p>\n<ul>\n<li><em>mutate_all<\/em>() \/ <em>transmute_all<\/em>(): apply a function to every columns in the data frame.<\/li>\n<li><em>mutate_at<\/em>() \/ <em>transmute_at<\/em>(): apply a function to specific columns selected with a character vector<\/li>\n<li><em>mutate_if<\/em>() \/ <em>transmute_if<\/em>(): apply a function to columns selected with a predicate function that returns TRUE.<\/li>\n<\/ul>\n<p><img decoding=\"async\" src=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/dn-tutorials\/data-manipulation-in-r\/images\/compute-and-add-new-variables.png\" alt=\"Compute and Add new Variables to a Data Frame in R\" \/><\/p>\n<p>Contents:<\/p>\n<div id=\"TOC\">\n<ul>\n<li><a href=\"#required-packages\">Required packages<\/a><\/li>\n<li><a href=\"#demo-dataset\">Demo dataset<\/a><\/li>\n<li><a href=\"#mutate-add-new-variables-by-preserving-existing-ones\">mutate: Add new variables by preserving existing ones<\/a><\/li>\n<li><a href=\"#transmute-make-new-variables-by-dropping-existing-ones\">transmute: Make new variables by dropping existing ones<\/a><\/li>\n<li><a href=\"#modify-multiple-columns-at-once\">Modify multiple columns at once<\/a>\n<ul>\n<li><a href=\"#transform-all-column-values\">Transform all column values<\/a><\/li>\n<li><a href=\"#transform-specific-columns\">Transform specific columns<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"#summary\">Summary<\/a><\/li>\n<\/ul>\n<\/div>\n<div id=\"required-packages\" class=\"section level2\">\n<h2>Required packages<\/h2>\n<p>Load the <code>tidyverse<\/code> packages, which include <code>dplyr<\/code>:<\/p>\n<pre class=\"r\"><code>library(tidyverse)<\/code><\/pre>\n<\/div>\n<div id=\"demo-dataset\" class=\"section level2\">\n<h2>Demo dataset<\/h2>\n<p>We\u2019ll use the R built-in iris data set, which we start by converting into a tibble data frame (tbl_df) for easier data analysis.<\/p>\n<pre class=\"r\"><code>my_data &lt;- as_tibble(iris)\r\nmy_data<\/code><\/pre>\n<pre><code>## # A tibble: 150 x 5\r\n##   Sepal.Length Sepal.Width Petal.Length Petal.Width Species\r\n##          &lt;dbl&gt;       &lt;dbl&gt;        &lt;dbl&gt;       &lt;dbl&gt; &lt;fct&gt;  \r\n## 1          5.1         3.5          1.4         0.2 setosa \r\n## 2          4.9         3            1.4         0.2 setosa \r\n## 3          4.7         3.2          1.3         0.2 setosa \r\n## 4          4.6         3.1          1.5         0.2 setosa \r\n## 5          5           3.6          1.4         0.2 setosa \r\n## 6          5.4         3.9          1.7         0.4 setosa \r\n## # ... with 144 more rows<\/code><\/pre>\n<\/div>\n<div id=\"mutate-add-new-variables-by-preserving-existing-ones\" class=\"section level2\">\n<h2>mutate: Add new variables by preserving existing ones<\/h2>\n<p>Add new columns (sepal_by_petal_*) by preserving existing ones:<\/p>\n<pre class=\"r\"><code>my_data %&gt;% \r\n  mutate(sepal_by_petal_l = Sepal.Length\/Petal.Length)<\/code><\/pre>\n<pre><code>## # A tibble: 150 x 6\r\n##   Sepal.Length Sepal.Width Petal.Length Petal.Width Species\r\n##          &lt;dbl&gt;       &lt;dbl&gt;        &lt;dbl&gt;       &lt;dbl&gt; &lt;fct&gt;  \r\n## 1          5.1         3.5          1.4         0.2 setosa \r\n## 2          4.9         3            1.4         0.2 setosa \r\n## 3          4.7         3.2          1.3         0.2 setosa \r\n## 4          4.6         3.1          1.5         0.2 setosa \r\n## 5          5           3.6          1.4         0.2 setosa \r\n## 6          5.4         3.9          1.7         0.4 setosa \r\n## # ... with 144 more rows, and 1 more variable: sepal_by_petal_l &lt;dbl&gt;<\/code><\/pre>\n<\/div>\n<div id=\"transmute-make-new-variables-by-dropping-existing-ones\" class=\"section level2\">\n<h2>transmute: Make new variables by dropping existing ones<\/h2>\n<p>Add new columns (sepal_by_petal_*) by dropping existing ones:<\/p>\n<pre class=\"r\"><code>my_data %&gt;%\r\n  transmute(\r\n    sepal_by_petal_l = Sepal.Length\/Petal.Length,\r\n    sepal_by_petal_w = Sepal.Width\/Petal.Width\r\n    )<\/code><\/pre>\n<pre><code>## # A tibble: 150 x 2\r\n##   sepal_by_petal_l sepal_by_petal_w\r\n##              &lt;dbl&gt;            &lt;dbl&gt;\r\n## 1             3.64            17.5 \r\n## 2             3.5             15   \r\n## 3             3.62            16   \r\n## 4             3.07            15.5 \r\n## 5             3.57            18   \r\n## 6             3.18             9.75\r\n## # ... with 144 more rows<\/code><\/pre>\n<\/div>\n<div id=\"modify-multiple-columns-at-once\" class=\"section level2\">\n<h2>Modify multiple columns at once<\/h2>\n<p>We start by creating a demo data set, <code>my_data2<\/code>, which contains only numeric columns. To do so, we\u2019ll remove the column <code>Species<\/code> as follow:<\/p>\n<pre class=\"r\"><code>my_data2 &lt;- my_data %&gt;%\r\n  select(-Species)<\/code><\/pre>\n<p>The functions <code>mutate_all()<\/code> \/ <code>transmute_all()<\/code>, <code>mutate_at()<\/code> \/ <code>transmute_at()<\/code> and <code>mutate_if()<\/code> \/ <code>transmute_if()<\/code> can be used to modify multiple columns at once.<\/p>\n<p>The simplified formats are as follow:<\/p>\n<pre class=\"r\"><code># Mutate variants\r\nmutate_all(.tbl, .funs, ...)\r\nmutate_if(.tbl, .predicate, .funs, ...)\r\nmutate_at(.tbl, .vars, .funs, ...)\r\n\r\n# Transmute variants\r\ntransmute_all(.tbl, .funs, ...)\r\ntransmute_if(.tbl, .predicate, .funs, ...)\r\ntransmute_at(.tbl, .vars, .funs, ...)<\/code><\/pre>\n<ul>\n<li>.tbl: a tbl data frame<\/li>\n<li>.funs: List of function calls generated by <code>funs()<\/code>, or a character vector of function names, or simply a function.<\/li>\n<li>\u2026: Additional arguments for the function calls in .funs.<\/li>\n<li>.predicate: A predicate function to be applied to the columns or a logical vector. The variables for which .predicate is or returns TRUE are selected.<\/li>\n<\/ul>\n<p>In the following sections, we\u2019ll present only the variants of <code>mutate()<\/code>. The <code>transmute()<\/code> variants can be used similarly.<\/p>\n<div id=\"transform-all-column-values\" class=\"section level3\">\n<h3>Transform all column values<\/h3>\n<ul>\n<li>Divide all columns value by 2.54:<\/li>\n<\/ul>\n<pre class=\"r\"><code>my_data2 %&gt;%\r\n  mutate_all(funs(.\/2.54))<\/code><\/pre>\n<pre><code>## # A tibble: 150 x 4\r\n##   Sepal.Length Sepal.Width Petal.Length Petal.Width\r\n##          &lt;dbl&gt;       &lt;dbl&gt;        &lt;dbl&gt;       &lt;dbl&gt;\r\n## 1         2.01        1.38        0.551      0.0787\r\n## 2         1.93        1.18        0.551      0.0787\r\n## 3         1.85        1.26        0.512      0.0787\r\n## 4         1.81        1.22        0.591      0.0787\r\n## 5         1.97        1.42        0.551      0.0787\r\n## 6         2.13        1.54        0.669      0.157 \r\n## # ... with 144 more rows<\/code><\/pre>\n<div class=\"notice\">\n<p>Note that, the dot \u201c.\u201d represents any variables<\/p>\n<\/div>\n<ul>\n<li>Function names will be appended to column names if <code>.funs<\/code> has names or multiple inputs:<\/li>\n<\/ul>\n<pre class=\"r\"><code>my_data2 %&gt;%\r\n  mutate_all(funs(cm = .\/2.54))<\/code><\/pre>\n<pre><code>## # A tibble: 150 x 8\r\n##   Sepal.Length Sepal.Width Petal.Length Petal.Width Sepal.Length_cm\r\n##          &lt;dbl&gt;       &lt;dbl&gt;        &lt;dbl&gt;       &lt;dbl&gt;           &lt;dbl&gt;\r\n## 1          5.1         3.5          1.4         0.2            2.01\r\n## 2          4.9         3            1.4         0.2            1.93\r\n## 3          4.7         3.2          1.3         0.2            1.85\r\n## 4          4.6         3.1          1.5         0.2            1.81\r\n## 5          5           3.6          1.4         0.2            1.97\r\n## 6          5.4         3.9          1.7         0.4            2.13\r\n## # ... with 144 more rows, and 3 more variables: Sepal.Width_cm &lt;dbl&gt;,\r\n## #   Petal.Length_cm &lt;dbl&gt;, Petal.Width_cm &lt;dbl&gt;<\/code><\/pre>\n<div class=\"success\">\n<p>Note that, the output variable name now includes the function name.<\/p>\n<\/div>\n<\/div>\n<div id=\"transform-specific-columns\" class=\"section level3\">\n<h3>Transform specific columns<\/h3>\n<ul>\n<li><strong>mutate_at<\/strong>(): transform specific columns selected by names:<\/li>\n<\/ul>\n<pre class=\"r\"><code>my_data2 %&gt;%\r\n  mutate_at(\r\n    c(\"Sepal.Length\", \"Petal.Width\"),\r\n    funs(cm = .\/2.54)\r\n    )<\/code><\/pre>\n<ul>\n<li><strong>mutate_if<\/strong>(): transform specific columns selected by a predicate function.<\/li>\n<\/ul>\n<p><code>mutate_if()<\/code> is particularly useful for transforming variables from one type to another.<\/p>\n<pre class=\"r\"><code>my_data %&gt;% mutate_if(is.factor, as.character)<\/code><\/pre>\n<p>Round all numeric variables:<\/p>\n<pre class=\"r\"><code>my_data %&gt;% mutate_if(is.numeric, round, digits = 0)<\/code><\/pre>\n<\/div>\n<\/div>\n<div id=\"summary\" class=\"section level2\">\n<h2>Summary<\/h2>\n<p>This article describe how to add new variable columns into a data frame using the <code>dplyr<\/code> functions: <code>mutate()<\/code>, <code>transmute()<\/code> and variants.<\/p>\n<ul>\n<li><code>mutate(iris, sepal = 2*Sepal.Length)<\/code>: Computes and appends new variable(s).<\/li>\n<li><code>transmute(iris, sepal = 2*Sepal.Length)<\/code>: Makes new variable(s) and drops existing ones.<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<p><!--end rdoc--><\/p>\n","protected":false},"excerpt":{"rendered":"<p>This tutorial describes how to compute and add new variables to a data frame in R.<\/p>\n","protected":false},"author":1,"featured_media":7719,"parent":0,"menu_order":7,"comment_status":"open","ping_status":"closed","template":"","class_list":["post-7238","dt_lessons","type-dt_lessons","status-publish","has-post-thumbnail","hentry","lesson_complexity-hard"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Compute and Add new Variables to a Data Frame in R - Datanovia<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.datanovia.com\/en\/lessons\/compute-and-add-new-variables-to-a-data-frame-in-r\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Compute and Add new Variables to a Data Frame in R - Datanovia\" \/>\n<meta property=\"og:description\" content=\"This tutorial describes how to compute and add new variables to a data frame in R.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.datanovia.com\/en\/lessons\/compute-and-add-new-variables-to-a-data-frame-in-r\/\" \/>\n<meta property=\"og:site_name\" content=\"Datanovia\" \/>\n<meta property=\"article:modified_time\" content=\"2019-07-18T21:14:11+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2018\/10\/IMG_0503.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"512\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.datanovia.com\/en\/lessons\/compute-and-add-new-variables-to-a-data-frame-in-r\/\",\"url\":\"https:\/\/www.datanovia.com\/en\/lessons\/compute-and-add-new-variables-to-a-data-frame-in-r\/\",\"name\":\"Compute and Add new Variables to a Data Frame in R - Datanovia\",\"isPartOf\":{\"@id\":\"https:\/\/www.datanovia.com\/en\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.datanovia.com\/en\/lessons\/compute-and-add-new-variables-to-a-data-frame-in-r\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.datanovia.com\/en\/lessons\/compute-and-add-new-variables-to-a-data-frame-in-r\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2018\/10\/IMG_0503.jpg\",\"datePublished\":\"2018-10-01T21:43:40+00:00\",\"dateModified\":\"2019-07-18T21:14:11+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.datanovia.com\/en\/lessons\/compute-and-add-new-variables-to-a-data-frame-in-r\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.datanovia.com\/en\/lessons\/compute-and-add-new-variables-to-a-data-frame-in-r\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.datanovia.com\/en\/lessons\/compute-and-add-new-variables-to-a-data-frame-in-r\/#primaryimage\",\"url\":\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2018\/10\/IMG_0503.jpg\",\"contentUrl\":\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2018\/10\/IMG_0503.jpg\",\"width\":1024,\"height\":512},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.datanovia.com\/en\/lessons\/compute-and-add-new-variables-to-a-data-frame-in-r\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.datanovia.com\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Lessons\",\"item\":\"https:\/\/www.datanovia.com\/en\/lessons\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Compute and Add new Variables to a Data Frame in R\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.datanovia.com\/en\/#website\",\"url\":\"https:\/\/www.datanovia.com\/en\/\",\"name\":\"Datanovia\",\"description\":\"Data Mining and Statistics for Decision Support\",\"publisher\":{\"@id\":\"https:\/\/www.datanovia.com\/en\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.datanovia.com\/en\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.datanovia.com\/en\/#organization\",\"name\":\"Datanovia\",\"url\":\"https:\/\/www.datanovia.com\/en\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.datanovia.com\/en\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2018\/09\/datanovia-logo.png\",\"contentUrl\":\"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2018\/09\/datanovia-logo.png\",\"width\":98,\"height\":99,\"caption\":\"Datanovia\"},\"image\":{\"@id\":\"https:\/\/www.datanovia.com\/en\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Compute and Add new Variables to a Data Frame in R - Datanovia","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:\/\/www.datanovia.com\/en\/lessons\/compute-and-add-new-variables-to-a-data-frame-in-r\/","og_locale":"en_US","og_type":"article","og_title":"Compute and Add new Variables to a Data Frame in R - Datanovia","og_description":"This tutorial describes how to compute and add new variables to a data frame in R.","og_url":"https:\/\/www.datanovia.com\/en\/lessons\/compute-and-add-new-variables-to-a-data-frame-in-r\/","og_site_name":"Datanovia","article_modified_time":"2019-07-18T21:14:11+00:00","og_image":[{"width":1024,"height":512,"url":"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2018\/10\/IMG_0503.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.datanovia.com\/en\/lessons\/compute-and-add-new-variables-to-a-data-frame-in-r\/","url":"https:\/\/www.datanovia.com\/en\/lessons\/compute-and-add-new-variables-to-a-data-frame-in-r\/","name":"Compute and Add new Variables to a Data Frame in R - Datanovia","isPartOf":{"@id":"https:\/\/www.datanovia.com\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.datanovia.com\/en\/lessons\/compute-and-add-new-variables-to-a-data-frame-in-r\/#primaryimage"},"image":{"@id":"https:\/\/www.datanovia.com\/en\/lessons\/compute-and-add-new-variables-to-a-data-frame-in-r\/#primaryimage"},"thumbnailUrl":"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2018\/10\/IMG_0503.jpg","datePublished":"2018-10-01T21:43:40+00:00","dateModified":"2019-07-18T21:14:11+00:00","breadcrumb":{"@id":"https:\/\/www.datanovia.com\/en\/lessons\/compute-and-add-new-variables-to-a-data-frame-in-r\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.datanovia.com\/en\/lessons\/compute-and-add-new-variables-to-a-data-frame-in-r\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.datanovia.com\/en\/lessons\/compute-and-add-new-variables-to-a-data-frame-in-r\/#primaryimage","url":"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2018\/10\/IMG_0503.jpg","contentUrl":"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2018\/10\/IMG_0503.jpg","width":1024,"height":512},{"@type":"BreadcrumbList","@id":"https:\/\/www.datanovia.com\/en\/lessons\/compute-and-add-new-variables-to-a-data-frame-in-r\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.datanovia.com\/en\/"},{"@type":"ListItem","position":2,"name":"Lessons","item":"https:\/\/www.datanovia.com\/en\/lessons\/"},{"@type":"ListItem","position":3,"name":"Compute and Add new Variables to a Data Frame in R"}]},{"@type":"WebSite","@id":"https:\/\/www.datanovia.com\/en\/#website","url":"https:\/\/www.datanovia.com\/en\/","name":"Datanovia","description":"Data Mining and Statistics for Decision Support","publisher":{"@id":"https:\/\/www.datanovia.com\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.datanovia.com\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.datanovia.com\/en\/#organization","name":"Datanovia","url":"https:\/\/www.datanovia.com\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.datanovia.com\/en\/#\/schema\/logo\/image\/","url":"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2018\/09\/datanovia-logo.png","contentUrl":"https:\/\/www.datanovia.com\/en\/wp-content\/uploads\/2018\/09\/datanovia-logo.png","width":98,"height":99,"caption":"Datanovia"},"image":{"@id":"https:\/\/www.datanovia.com\/en\/#\/schema\/logo\/image\/"}}]}},"multi-rating":{"mr_rating_results":[]},"_links":{"self":[{"href":"https:\/\/www.datanovia.com\/en\/wp-json\/wp\/v2\/dt_lessons\/7238","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.datanovia.com\/en\/wp-json\/wp\/v2\/dt_lessons"}],"about":[{"href":"https:\/\/www.datanovia.com\/en\/wp-json\/wp\/v2\/types\/dt_lessons"}],"author":[{"embeddable":true,"href":"https:\/\/www.datanovia.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.datanovia.com\/en\/wp-json\/wp\/v2\/comments?post=7238"}],"version-history":[{"count":1,"href":"https:\/\/www.datanovia.com\/en\/wp-json\/wp\/v2\/dt_lessons\/7238\/revisions"}],"predecessor-version":[{"id":9563,"href":"https:\/\/www.datanovia.com\/en\/wp-json\/wp\/v2\/dt_lessons\/7238\/revisions\/9563"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.datanovia.com\/en\/wp-json\/wp\/v2\/media\/7719"}],"wp:attachment":[{"href":"https:\/\/www.datanovia.com\/en\/wp-json\/wp\/v2\/media?parent=7238"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}