{"id":77944,"date":"2020-04-03T17:42:11","date_gmt":"2020-04-03T12:12:11","guid":{"rendered":"https:\/\/techvidvan.com\/tutorials\/?p=77944"},"modified":"2020-04-03T17:42:11","modified_gmt":"2020-04-03T12:12:11","slug":"r-contingency-tables","status":"publish","type":"post","link":"https:\/\/techvidvan.com\/tutorials\/r-contingency-tables\/","title":{"rendered":"Contingency tables in R &#8211; Learn to represent data in a condensed form"},"content":{"rendered":"<p>Contingency tables are very useful to condense a large number of observations into smaller easier to maintain tables. In this R tutorial, we are going to learn about contingency tables and how to create them. We will learn about complex\/flat tables, cross-tabulation, and also about recovering original data from the contingency tables.<\/p>\n<p>As you can see, this tutorial is going to be packed to the brim. So, let\u2019s not waste any more time, and get started.<\/p>\n<h3>What are Contingency Tables?<\/h3>\n<p>A contingency table shows the distribution of a variable in the rows and another in its columns. Contingency tables are not only useful for <strong>condensing data<\/strong>, but they also show the relations between variables. They are a way of <strong>summarizing categorical variables.<\/strong><\/p>\n<p>A contingency table that deals with a single table are called a <strong>complex or a flat contingency table.<\/strong><\/p>\n<h2>Contingency Tables in R<\/h2>\n<p><a href=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2020\/04\/contingency-tables-in-R.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-77983\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2020\/04\/contingency-tables-in-R.jpg\" alt=\"contingency tables in R\" width=\"802\" height=\"420\" \/><\/a><\/p>\n<p>The <strong><code>table()<\/code><\/strong> function can be used in R to create a contingency table. The table function is one of the most versatile functions in R. It can take any data structure as an argument and turn it into a table. Let us take a look at the example below:<\/p>\n<p><strong>Code:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">ct1 &lt;- table(mtcars$gear, mtcars$cyl, dnn=c(\"gears\",\"cylinders\"))\nct1<\/pre>\n<p><strong>Output:<\/strong><\/p>\n<p><a href=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2020\/04\/1.contingency-tables-in-r-table-function.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-77973\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2020\/04\/1.contingency-tables-in-r-table-function.png\" alt=\"table function - contingency tables in r\" width=\"1299\" height=\"741\" \/><\/a><\/p>\n<p>In the above example, we take two <strong>categorical variables<\/strong> from the <code>mtcars<\/code> datasets. These variables are the number of gears and the number of cylinders inside the cars. The resultant table contains the number of gears as rows and the number of cylinders as columns.<\/p>\n<h3>Calculating the row totals of a contingency table in R<\/h3>\n<p>We can calculate the totals of each of the rows in a contingency table by using the <strong><code>margin.table()<\/code><\/strong> function. Let\u2019s take a look at that with an example:<\/p>\n<p><strong>Code:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">margin.table(ct1, margin = 1)<\/pre>\n<p><strong>Output:<\/strong><\/p>\n<p><a href=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2020\/04\/2.contingency-tables-in-r-add-rows.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-77974\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2020\/04\/2.contingency-tables-in-r-add-rows.png\" alt=\"add rows - contingency tables in r\" width=\"1299\" height=\"741\" \/><\/a><\/p>\n<h3>Calculating the column totals of a contingency table in R<\/h3>\n<p>We can also calculate the totals of each of the columns in a contingency table similarly, by using the <strong><code>margin.table()<\/code><\/strong> function. All we have to change is the <strong><code>margin<\/code><\/strong> argument to 2. Here is an example of this.<\/p>\n<p><strong>Code:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">margin.table(ct1, margin = 2)<\/pre>\n<p><strong>Output:<\/strong><\/p>\n<p><a href=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2020\/04\/3.contingency-tables-in-r-add-columns.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-77975\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2020\/04\/3.contingency-tables-in-r-add-columns.png\" alt=\"add columns - contingency tables in r\" width=\"1299\" height=\"741\" \/><\/a><\/p>\n<h3>The addmargins function<\/h3>\n<p>The <strong><code>addmargins()<\/code><\/strong> function is another way to find the sum totals of the rows and columns of a contingency table. This function finds the totals of all the rows as well as columns of the input contingency table. Let us take a look at an example of this function as well.<\/p>\n<p><strong>Code:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">addmargins(ct1)<\/pre>\n<p><strong>Output:<\/strong><\/p>\n<p><a href=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2020\/04\/4.contingency-tables-in-r-add-rows-and-columns.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-77976\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2020\/04\/4.contingency-tables-in-r-add-rows-and-columns.png\" alt=\"add rows and columns - contingency tables in r\" width=\"1299\" height=\"741\" \/><\/a><\/p>\n<h3>Proportional contingency tables in R<\/h3>\n<p>Using the <strong><code>prop.tables()<\/code><\/strong> function, we can find the <strong>proportional weight<\/strong> of each value in a contingency table. This is demonstrated in the example below:<\/p>\n<p><strong>Code:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">prop.table(ct1)<\/pre>\n<p><strong>Output:<\/strong><\/p>\n<p><a href=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2020\/04\/5.contingency-tables-in-r-proportional-CG.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-77977\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2020\/04\/5.contingency-tables-in-r-proportional-CG.png\" alt=\"proportional CG - contingency tables in r\" width=\"1299\" height=\"741\" \/><\/a><\/p>\n<h3>Contingency tables in R with proportional rows<\/h3>\n<p>By using<strong><code> margin = 1<\/code><\/strong> as an argument in the <strong><code>prop.table()<\/code><\/strong> function, we can also find the row proportions in a contingency table.<\/p>\n<p><strong>Code:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">prop.table(ct1, margin = 1)<\/pre>\n<p><strong>Output:<\/strong><\/p>\n<p><a href=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2020\/04\/6.contingency-tables-in-r-proportional-rows.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-77978\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2020\/04\/6.contingency-tables-in-r-proportional-rows.png\" alt=\"proportional rows - contingency tables in r\" width=\"1299\" height=\"741\" \/><\/a><\/p>\n<h3>Contingency tables in R with proportional columns<\/h3>\n<p>We can find the column proportions in a contingency table, by using <strong><code>margin = 2<\/code><\/strong> in the arguments of the <strong><code>prop.table()<\/code><\/strong> function.<\/p>\n<p><strong>Code:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">prop.table(ct1, margin = 2)<\/pre>\n<p><strong>Output:<\/strong><\/p>\n<p><a href=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2020\/04\/7.contingency-tables-in-r-proportional-columns.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-77979\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2020\/04\/7.contingency-tables-in-r-proportional-columns.png\" alt=\"proportional columns - contingency tables in r\" width=\"1299\" height=\"741\" \/><\/a><\/p>\n<h3>Creating Flat Contingency tables in R<\/h3>\n<p>We can create <strong>Flat or complex contingency tables<\/strong> in R using the <strong><code>ftable()<\/code><\/strong> function. Let us take a look at this with the help of the following example.<\/p>\n<p><strong>Code:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">ft1 &lt;- ftable(mtcars[c(\"gear\",\"vs\",\"am\",\"cyl\")])\nft1<\/pre>\n<p><strong>Output:<\/strong><\/p>\n<p><a href=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2020\/04\/8.contingency-tables-in-r-ftable-function.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-77980\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2020\/04\/8.contingency-tables-in-r-ftable-function.png\" alt=\"ftable function - contingency tables in r\" width=\"1299\" height=\"741\" \/><\/a><\/p>\n<h3>Cross Tabulation and The xtabs Function<\/h3>\n<p>The <strong><code>xtabs()<\/code><\/strong> function of R, allows us to create a contingency table using cross-tabulation. The function returns an object that has a class of \u201c<strong><code>table<\/code><\/strong>\u201d as well as \u201c<strong><code>xtabs<\/code><\/strong>\u201d. Following is an example of the usage of the <a href=\"https:\/\/www.rdocumentation.org\/packages\/stats\/versions\/3.6.2\/topics\/xtabs\">xtabs<\/a> function.<\/p>\n<p><strong>Code:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">c1 &lt;- sample(letters[1:4],16,replace = TRUE)\nc2 &lt;- sample(LETTERS[1:4],16,replace = TRUE)\ndf1 &lt;- data.frame(c1,c2)\nt1 &lt;- table(df1$c1,df1$c2)\nt2 &lt;- as.data.frame.matrix(t1)\nxt1 &lt;- xtabs(A~B+C,t2)\nxt1<\/pre>\n<p><strong>Output:<\/strong><\/p>\n<p><a href=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2020\/04\/9.contingency-tables-in-r-xtabs-function.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-77981\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2020\/04\/9.contingency-tables-in-r-xtabs-function.png\" alt=\"xtabs function - contingency tables in r\" width=\"1299\" height=\"741\" \/><\/a><\/p>\n<h3>Recovering data from contingency tables in R<\/h3>\n<p>The data from the contingency tables created using the <strong><code>xtabs()<\/code><\/strong> function can be retrieved by using the <strong><code>as.data.frame()<\/code><\/strong> function. The result is a data frame object.<\/p>\n<p><strong>Code:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">df2 &lt;- as.data.frame(xt1)\ndf2<\/pre>\n<p><strong>Output:<\/strong><\/p>\n<p><a href=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2020\/04\/10.contingency-tables-in-r-as.data_.frame-function.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-77982\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2020\/04\/10.contingency-tables-in-r-as.data_.frame-function.png\" alt=\"as.data.frame function - contingency tables in r\" width=\"1299\" height=\"741\" \/><\/a><\/p>\n<h2>Summary<\/h2>\n<p>Contingency tables are an efficient way to summarize data and find relations and dependencies between variables. It is a way to represent data in a condensed form.<\/p>\n<p>In this R tutorial, we learned about what contingency tables are. We studied how we create contingency tables in R and how to perform various operations on them like adding along their margins, calculating their proportionate values. We also learned what flat contingency tables are and how to create them in R. Finally, we learned about cross-tabulation and how do we recover data from the contingency table.<\/p>\n<p>Now its time to learn <a href=\"https:\/\/techvidvan.com\/tutorials\/data-manipulation-r\/\"><strong>Data Manipulation in R programming<\/strong><\/a>.<\/p>\n<p>Any queries while executing these Contingency tables in R?<\/p>\n<p>Don\u2019t worry! Ask below, and our <strong>TechVidvan<\/strong> experts will be happy to help you.<\/p>\n<p>Keep Executing!!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Contingency tables are very useful to condense a large number of observations into smaller easier to maintain tables. In this R tutorial, we are going to learn about contingency tables and how to create&#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":77983,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1020],"tags":[2276,2277,2278,2279],"class_list":["post-77944","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-r","tag-contingency-tables-in-r","tag-create-cross-table-in-r","tag-cross-tabulation-in-r","tag-cross-tabulation-table-in-r"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Contingency tables in R - Learn to represent data in a condensed form - TechVidvan<\/title>\n<meta name=\"description\" content=\"In this article learn contingency tables in R &amp; how to create them. Learn complex\/flat tables,cross-tabulation,&amp; recovering data from contingency tables\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/techvidvan.com\/tutorials\/r-contingency-tables\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Contingency tables in R - Learn to represent data in a condensed form - TechVidvan\" \/>\n<meta property=\"og:description\" content=\"In this article learn contingency tables in R &amp; how to create them. Learn complex\/flat tables,cross-tabulation,&amp; recovering data from contingency tables\" \/>\n<meta property=\"og:url\" content=\"https:\/\/techvidvan.com\/tutorials\/r-contingency-tables\/\" \/>\n<meta property=\"og:site_name\" content=\"TechVidvan\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/TechVidvan\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-04-03T12:12:11+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2020\/04\/contingency-tables-in-R.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"802\" \/>\n\t<meta property=\"og:image:height\" content=\"420\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"TechVidvan Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@vidvantech\" \/>\n<meta name=\"twitter:site\" content=\"@vidvantech\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"TechVidvan Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Contingency tables in R - Learn to represent data in a condensed form - TechVidvan","description":"In this article learn contingency tables in R & how to create them. Learn complex\/flat tables,cross-tabulation,& recovering data from contingency tables","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:\/\/techvidvan.com\/tutorials\/r-contingency-tables\/","og_locale":"en_US","og_type":"article","og_title":"Contingency tables in R - Learn to represent data in a condensed form - TechVidvan","og_description":"In this article learn contingency tables in R & how to create them. Learn complex\/flat tables,cross-tabulation,& recovering data from contingency tables","og_url":"https:\/\/techvidvan.com\/tutorials\/r-contingency-tables\/","og_site_name":"TechVidvan","article_publisher":"https:\/\/www.facebook.com\/TechVidvan\/","article_published_time":"2020-04-03T12:12:11+00:00","og_image":[{"width":802,"height":420,"url":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2020\/04\/contingency-tables-in-R.jpg","type":"image\/jpeg"}],"author":"TechVidvan Team","twitter_card":"summary_large_image","twitter_creator":"@vidvantech","twitter_site":"@vidvantech","twitter_misc":{"Written by":"TechVidvan Team","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/techvidvan.com\/tutorials\/r-contingency-tables\/#article","isPartOf":{"@id":"https:\/\/techvidvan.com\/tutorials\/r-contingency-tables\/"},"author":{"name":"TechVidvan Team","@id":"https:\/\/techvidvan.com\/tutorials\/#\/schema\/person\/e9c26e74dd3d87421f7ada9433b8cd22"},"headline":"Contingency tables in R &#8211; Learn to represent data in a condensed form","datePublished":"2020-04-03T12:12:11+00:00","mainEntityOfPage":{"@id":"https:\/\/techvidvan.com\/tutorials\/r-contingency-tables\/"},"wordCount":724,"commentCount":0,"publisher":{"@id":"https:\/\/techvidvan.com\/tutorials\/#organization"},"image":{"@id":"https:\/\/techvidvan.com\/tutorials\/r-contingency-tables\/#primaryimage"},"thumbnailUrl":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2020\/04\/contingency-tables-in-R.jpg","keywords":["contingency tables in R","create cross table in R","cross tabulation in R","cross tabulation table in R"],"articleSection":["R Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/techvidvan.com\/tutorials\/r-contingency-tables\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/techvidvan.com\/tutorials\/r-contingency-tables\/","url":"https:\/\/techvidvan.com\/tutorials\/r-contingency-tables\/","name":"Contingency tables in R - Learn to represent data in a condensed form - TechVidvan","isPartOf":{"@id":"https:\/\/techvidvan.com\/tutorials\/#website"},"primaryImageOfPage":{"@id":"https:\/\/techvidvan.com\/tutorials\/r-contingency-tables\/#primaryimage"},"image":{"@id":"https:\/\/techvidvan.com\/tutorials\/r-contingency-tables\/#primaryimage"},"thumbnailUrl":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2020\/04\/contingency-tables-in-R.jpg","datePublished":"2020-04-03T12:12:11+00:00","description":"In this article learn contingency tables in R & how to create them. Learn complex\/flat tables,cross-tabulation,& recovering data from contingency tables","breadcrumb":{"@id":"https:\/\/techvidvan.com\/tutorials\/r-contingency-tables\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/techvidvan.com\/tutorials\/r-contingency-tables\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/techvidvan.com\/tutorials\/r-contingency-tables\/#primaryimage","url":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2020\/04\/contingency-tables-in-R.jpg","contentUrl":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2020\/04\/contingency-tables-in-R.jpg","width":802,"height":420,"caption":"contingency tables in R"},{"@type":"BreadcrumbList","@id":"https:\/\/techvidvan.com\/tutorials\/r-contingency-tables\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/techvidvan.com\/tutorials\/"},{"@type":"ListItem","position":2,"name":"Contingency tables in R &#8211; Learn to represent data in a condensed form"}]},{"@type":"WebSite","@id":"https:\/\/techvidvan.com\/tutorials\/#website","url":"https:\/\/techvidvan.com\/tutorials\/","name":"TechVidvan Blogs","description":"","publisher":{"@id":"https:\/\/techvidvan.com\/tutorials\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/techvidvan.com\/tutorials\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/techvidvan.com\/tutorials\/#organization","name":"TechVidvan","url":"https:\/\/techvidvan.com\/tutorials\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/techvidvan.com\/tutorials\/#\/schema\/logo\/image\/","url":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2024\/03\/techvidvan-logo-200x50-1.webp","contentUrl":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2024\/03\/techvidvan-logo-200x50-1.webp","width":200,"height":50,"caption":"TechVidvan"},"image":{"@id":"https:\/\/techvidvan.com\/tutorials\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/TechVidvan\/","https:\/\/x.com\/vidvantech"]},{"@type":"Person","@id":"https:\/\/techvidvan.com\/tutorials\/#\/schema\/person\/e9c26e74dd3d87421f7ada9433b8cd22","name":"TechVidvan Team","description":"The TechVidvan Team delivers practical, beginner-friendly tutorials on programming, Java, Python, C++, DSA, AI, ML, data Science, Android, Flutter, MERN, Web Development, and technology. Our experts are here to help you upskill and excel in today\u2019s tech industry."}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/posts\/77944","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/comments?post=77944"}],"version-history":[{"count":0,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/posts\/77944\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/media\/77983"}],"wp:attachment":[{"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/media?parent=77944"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/categories?post=77944"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/tags?post=77944"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}