{"id":3619,"date":"2023-07-16T12:37:36","date_gmt":"2023-07-16T12:37:36","guid":{"rendered":"https:\/\/statorials.org\/nl\/gegevenstabel-versus-gegevensframe-in-r\/"},"modified":"2023-07-16T12:37:36","modified_gmt":"2023-07-16T12:37:36","slug":"gegevenstabel-versus-gegevensframe-in-r","status":"publish","type":"post","link":"https:\/\/statorials.org\/nl\/gegevenstabel-versus-gegevensframe-in-r\/","title":{"rendered":"Data.table versus dataframe in r: drie belangrijke verschillen"},"content":{"rendered":"<p><\/p>\n<hr>\n<p><span style=\"color: #000000;\">In de programmeertaal R maakt een <strong>data.frame<\/strong> deel uit van de R-database.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Elk <strong>data.frame<\/strong> kan worden geconverteerd naar <strong>data.table<\/strong> met behulp van de <strong>setDF-<\/strong> functie van het <strong>data.table-<\/strong> pakket.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Een data.table biedt de volgende voordelen ten opzichte van een data.frame in R:<\/span><\/p>\n<p> <span style=\"color: #000000;\"><strong>1.<\/strong> U kunt de <a href=\"https:\/\/statorials.org\/nl\/ben-bang\/\" target=\"_blank\" rel=\"noopener\">fread-<\/a> functie uit het data.table-pakket gebruiken om een bestand <em>veel<\/em> sneller in een data.table te lezen dan standaard R-functies zoals <a href=\"https:\/\/statorials.org\/nl\/csv-importeren-in-r\/\" target=\"_blank\" rel=\"noopener\">read.csv<\/a> , die bestanden in een data.frame lezen.<\/span><\/p>\n<p> <span style=\"color: #000000;\"><strong>2.<\/strong> U kunt bewerkingen (zoals groeperen en aggregeren) <em>veel<\/em> sneller uitvoeren op een data.table dan op een data.frame.<\/span><\/p>\n<p> <span style=\"color: #000000;\"><strong>3.<\/strong> Wanneer een data.frame naar een console wordt afgedrukt, zal R proberen elke rij in het data.frame af te drukken. Een data.table geeft echter alleen de eerste 100 rijen weer, wat kan voorkomen dat uw sessie vastloopt of crasht als u met een grote dataset werkt.<\/span><\/p>\n<p> <span style=\"color: #000000;\">De volgende voorbeelden illustreren deze verschillen tussen data.frames en data.tables in de praktijk.<\/span><\/p>\n<h2> <span style=\"color: #000000;\"><strong>Verschil #1: Snellere import met moeite<\/strong><\/span><\/h2>\n<p> <span style=\"color: #000000;\">De volgende code laat zien hoe u een dataframe van 10.000 rijen en 100 kolommen importeert met behulp van de <strong>fread-<\/strong> functie uit het data.table-pakket en de <strong>read.csv-<\/strong> functie uit de R-database:<\/span><\/p>\n<pre style=\"background-color: #ececec; font-size: 15px;\"> <strong><span style=\"color: #008000;\">library<\/span> (microbenchmark)\n<span style=\"color: #008000;\">library<\/span> (data.table)\n\n<span style=\"color: #008080;\">#make this example reproducible\n<\/span>set. <span style=\"color: #3366ff;\">seeds<\/span> (1)\n\n<span style=\"color: #008080;\">#create data frame with 10,000 rows and 100 columns\n<\/span>df &lt;- as. <span style=\"color: #3366ff;\">data<\/span> . <span style=\"color: #3366ff;\">frame<\/span> (matrix(runif(10^4 * 100), nrow = 10^4))\n\n<span style=\"color: #008080;\">#export CSV to current working directory\n<\/span>write.write. <span style=\"color: #3366ff;\">csv<\/span> (df, \" <span style=\"color: #ff0000;\">test.csv<\/span> \", quote = <span style=\"color: #008000;\">FALSE<\/span> )\n\n<span style=\"color: #008080;\">#import CSV file using fread and read.csv and time how long it takes\n<\/span>results &lt;- microbenchmark(\n  read.csv = read. <span style=\"color: #3366ff;\">csv<\/span> (\" <span style=\"color: #ff0000;\">test.csv<\/span> \", header = <span style=\"color: #008000;\">TRUE<\/span> , stringsAsFactors = <span style=\"color: #008000;\">FALSE<\/span> ),\n  fread = fread(\" <span style=\"color: #ff0000;\">test.csv<\/span> \", sep = \",\", stringsAsFactors = <span style=\"color: #008000;\">FALSE<\/span> ),\n  times = 10)\n\n<span style=\"color: #008080;\">#view results\n<\/span>results\n\nUnit: milliseconds\n     expr min lq mean median uq max neval cld\n read.csv 817.1867 892.8748 1026.7071 899.5755 926.9120 1964.0540 10 b\n    fread 113.5889 116.2735 136.4079 124.3816 136.0534 211.7484 10 a<\/strong><\/pre>\n<p> <span style=\"color: #000000;\">Uit de resultaten kunnen we zien dat <strong>fread<\/strong> ongeveer 10 keer sneller is om dit CSV-bestand te importeren vergeleken met de <strong>read.csv-<\/strong> functie.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Merk op dat dit verschil nog groter zal zijn voor grotere datasets.<\/span><\/p>\n<h2> <span style=\"color: #000000;\"><strong>Verschil #2: snellere gegevensmanipulatie met data.table<\/strong><\/span><\/h2>\n<p> <span style=\"color: #000000;\">Over het algemeen kan <strong>data.table<\/strong> elke taak voor gegevensmanipulatie ook veel sneller uitvoeren dan <strong>een data.frame<\/strong> .<\/span><\/p>\n<p> <span style=\"color: #000000;\">De volgende code laat bijvoorbeeld zien hoe u het gemiddelde van een variabele berekent, gegroepeerd op een andere variabele in zowel data.table als data.frame:<\/span><\/p>\n<pre style=\"background-color: #ececec; font-size: 15px;\"> <span style=\"color: #000000;\"><strong><span style=\"color: #008000;\">library<\/span> (microbenchmark)\n<span style=\"color: #008000;\">library<\/span> (data.table)\n\n<span style=\"color: #008080;\">#make this example reproducible\n<\/span>set.seed(1)\n\n#create data frame with 10,000 rows and 100 columns\nd_frame &lt;- data. <span style=\"color: #3366ff;\">frame<\/span> (team=rep(c(' <span style=\"color: #ff0000;\">A<\/span> ', ' <span style=\"color: #ff0000;\">B<\/span> '), each=5000),\n                      points=c(rnorm(10000, mean=20, sd=3)))\n\n<span style=\"color: #008080;\">#create data.table from data.frame\n<\/span>d_table &lt;- setDT(d_frame)\n\n<span style=\"color: #008080;\">#calculate mean of points grouped by team in data.frame and data.table\n<\/span>results &lt;- microbenchmark(\n  mean_d_frame = aggregate(d_frame$points, list(d_frame$team), FUN=mean),\n  mean_d_table = d_table[ ,list(mean=mean(points)), by=team],\n  times = 10)\n\n<span style=\"color: #008080;\">#view results\n<\/span>results\n\nUnit: milliseconds\n         expr min lq mean median uq max neval cld\n mean_d_frame 2.9045 3.0077 3.11683 3.1074 3.1654 3.4824 10 b\n mean_d_table 1.0539 1.1140 1.52002 1.2075 1.2786 3.6084 10 a<\/strong><\/span><\/pre>\n<p> <span style=\"color: #000000;\">Uit de resultaten kunnen we zien dat <strong>data.table<\/strong> ongeveer drie keer sneller is dan <strong>data.frame<\/strong> .<\/span><\/p>\n<p> <span style=\"color: #000000;\">Voor grotere datasets zal dit verschil nog groter zijn.<\/span><\/p>\n<h2> <span style=\"color: #000000;\"><strong>Verschil #3: Minder rijen afgedrukt met data.table<\/strong><\/span><\/h2>\n<p> <span style=\"color: #000000;\">Wanneer een <strong>data.frame<\/strong> naar een console wordt afgedrukt, zal R proberen elke rij in het data.frame af te drukken.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Een <strong>data.table<\/strong> geeft echter alleen de eerste 100 rijen weer, wat kan voorkomen dat uw sessie vastloopt of crasht als u met een grote dataset werkt.<\/span><\/p>\n<p> <span style=\"color: #000000;\">In de volgende code maken we bijvoorbeeld zowel een dataframe als een data.table van 200 rijen.<\/span><\/p>\n<p> <span style=\"color: #000000;\">Bij het afdrukken van het data.frame zal R proberen elke rij af te drukken, terwijl het afdrukken van data.table alleen de eerste vijf rijen en de laatste vijf rijen zal weergeven:<\/span><\/p>\n<pre style=\"background-color: #ececec; font-size: 15px;\"> <strong><span style=\"color: #008000;\">library<\/span> (data.table)\n\n<span style=\"color: #008080;\">#make this example reproducible\n<\/span>set. <span style=\"color: #3366ff;\">seeds<\/span> (1)\n\n<span style=\"color: #008080;\">#create data frame\n<\/span>d_frame &lt;- data. <span style=\"color: #3366ff;\">frame<\/span> (x=rnorm(200),\n                      y=rnorm(200),\n                      z=rnorm(200))\n<span style=\"color: #008080;\">#view data frame\n<\/span>d_frame\n\n               X Y Z\n1 -0.055303118 1.54858564 -2.065337e-02\n2 0.354143920 0.36706204 -3.743962e-01\n3 -0.999823809 -1.57842544 4.392027e-01\n4 2.586214840 0.17383147 -2.081125e+00\n5 -1.917692199 -2.11487401 4.073522e-01\n6 0.039614766 2.21644236 1.869164e+00\n7 -1.942259548 0.81566443 4.740712e-01\n8 -0.424913746 1.01081030 4.996065e-01\n9 -1.753210825 -0.98893038 -6.290307e-01\n10 0.232382655 -1.25229873 -1.324883e+00\n11 0.027278832 0.44209325 -3.221920e-01\n...\n<span style=\"color: #008080;\">#create data table\n<\/span>d_table &lt;- setDT(d_frame)\n\n<span style=\"color: #008080;\">#view data table\n<\/span>d_table\n\n               X Y Z\n  1: -0.05530312 1.54858564 -0.02065337\n  2: 0.35414392 0.36706204 -0.37439617\n  3: -0.99982381 -1.57842544 0.43920275\n  4: 2.58621484 0.17383147 -2.08112491\n  5: -1.91769220 -2.11487401 0.40735218\n ---                                    \n196: -0.06196178 1.08164065 0.58609090\n197: 0.34160667 -0.01886703 1.61296255\n198: -0.38361957 -0.03890329 0.71377217\n199: -0.80719743 -0.89674205 -0.49615702\n200: -0.26502679 -0.15887435 -1.73781026<\/strong><\/pre>\n<p> <span style=\"color: #000000;\">Dit is een voordeel dat <strong>data.table<\/strong> biedt ten opzichte van <strong>data.frame<\/strong> , vooral als je werkt met grote datasets die je niet per ongeluk naar de console wilt afdrukken.<\/span><\/p>\n<h2> <span style=\"color: #000000;\"><strong>Aanvullende bronnen<\/strong><\/span><\/h2>\n<p> <span style=\"color: #000000;\">In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in R kunt uitvoeren:<\/span><\/p>\n<p> <a href=\"https:\/\/statorials.org\/nl\/r-toevoegen-aan-dataframe\/\" target=\"_blank\" rel=\"noopener\">Rijen toevoegen aan een dataframe in R<\/a><br \/> <a href=\"https:\/\/statorials.org\/nl\/r-kolommen-behouden\/\" target=\"_blank\" rel=\"noopener\">Hoe bepaalde kolommen in R te behouden<\/a><br \/> <a href=\"https:\/\/statorials.org\/nl\/dplyr-selecteer-numerieke-kolommen\/\" target=\"_blank\" rel=\"noopener\">Alleen numerieke kolommen selecteren in R<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In de programmeertaal R maakt een data.frame deel uit van de R-database. Elk data.frame kan worden geconverteerd naar data.table met behulp van de setDF- functie van het data.table- pakket. Een data.table biedt de volgende voordelen ten opzichte van een data.frame in R: 1. U kunt de fread- functie uit het data.table-pakket gebruiken om een bestand [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11],"tags":[],"class_list":["post-3619","post","type-post","status-publish","format-standard","hentry","category-gids"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>data.table versus dataframe in R: drie belangrijke verschillen - Statorials<\/title>\n<meta name=\"description\" content=\"In deze zelfstudie worden de belangrijkste verschillen tussen data.tables en dataframes in R uitgelegd, inclusief voorbeelden.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/statorials.org\/nl\/gegevenstabel-versus-gegevensframe-in-r\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"data.table versus dataframe in R: drie belangrijke verschillen - Statorials\" \/>\n<meta property=\"og:description\" content=\"In deze zelfstudie worden de belangrijkste verschillen tussen data.tables en dataframes in R uitgelegd, inclusief voorbeelden.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/statorials.org\/nl\/gegevenstabel-versus-gegevensframe-in-r\/\" \/>\n<meta property=\"og:site_name\" content=\"Statorials\" \/>\n<meta property=\"article:published_time\" content=\"2023-07-16T12:37:36+00:00\" \/>\n<meta name=\"author\" content=\"Dr.benjamin anderson\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Dr.benjamin anderson\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"4\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/statorials.org\/nl\/gegevenstabel-versus-gegevensframe-in-r\/\",\"url\":\"https:\/\/statorials.org\/nl\/gegevenstabel-versus-gegevensframe-in-r\/\",\"name\":\"data.table versus dataframe in R: drie belangrijke verschillen - Statorials\",\"isPartOf\":{\"@id\":\"https:\/\/statorials.org\/nl\/#website\"},\"datePublished\":\"2023-07-16T12:37:36+00:00\",\"dateModified\":\"2023-07-16T12:37:36+00:00\",\"author\":{\"@id\":\"https:\/\/statorials.org\/nl\/#\/schema\/person\/d4b8842173cca1bb62cdec41860e4219\"},\"description\":\"In deze zelfstudie worden de belangrijkste verschillen tussen data.tables en dataframes in R uitgelegd, inclusief voorbeelden.\",\"breadcrumb\":{\"@id\":\"https:\/\/statorials.org\/nl\/gegevenstabel-versus-gegevensframe-in-r\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/statorials.org\/nl\/gegevenstabel-versus-gegevensframe-in-r\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/statorials.org\/nl\/gegevenstabel-versus-gegevensframe-in-r\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Thuis\",\"item\":\"https:\/\/statorials.org\/nl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Data.table versus dataframe in r: drie belangrijke verschillen\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/statorials.org\/nl\/#website\",\"url\":\"https:\/\/statorials.org\/nl\/\",\"name\":\"Statorials\",\"description\":\"Uw gids voor statistische competentie\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/statorials.org\/nl\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"de\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/statorials.org\/nl\/#\/schema\/person\/d4b8842173cca1bb62cdec41860e4219\",\"name\":\"Dr.benjamin anderson\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/statorials.org\/nl\/#\/schema\/person\/image\/\",\"url\":\"http:\/\/statorials.org\/nl\/wp-content\/uploads\/2023\/10\/Dr.-Benjamin-Anderson-96x96.jpg\",\"contentUrl\":\"http:\/\/statorials.org\/nl\/wp-content\/uploads\/2023\/10\/Dr.-Benjamin-Anderson-96x96.jpg\",\"caption\":\"Dr.benjamin anderson\"},\"description\":\"Ik ben Benjamin, een gepensioneerde hoogleraar statistiek die nu een toegewijde Statorials-lesgever is. Ik heb uitgebreide ervaring en expertise op het gebied van statistiek en ik ben vastbesloten om mijn kennis te delen met studenten via Statorials. Lees verder\",\"sameAs\":[\"http:\/\/statorials.org\/nl\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"data.table versus dataframe in R: drie belangrijke verschillen - Statorials","description":"In deze zelfstudie worden de belangrijkste verschillen tussen data.tables en dataframes in R uitgelegd, inclusief voorbeelden.","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:\/\/statorials.org\/nl\/gegevenstabel-versus-gegevensframe-in-r\/","og_locale":"de_DE","og_type":"article","og_title":"data.table versus dataframe in R: drie belangrijke verschillen - Statorials","og_description":"In deze zelfstudie worden de belangrijkste verschillen tussen data.tables en dataframes in R uitgelegd, inclusief voorbeelden.","og_url":"https:\/\/statorials.org\/nl\/gegevenstabel-versus-gegevensframe-in-r\/","og_site_name":"Statorials","article_published_time":"2023-07-16T12:37:36+00:00","author":"Dr.benjamin anderson","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Dr.benjamin anderson","Gesch\u00e4tzte Lesezeit":"4\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/statorials.org\/nl\/gegevenstabel-versus-gegevensframe-in-r\/","url":"https:\/\/statorials.org\/nl\/gegevenstabel-versus-gegevensframe-in-r\/","name":"data.table versus dataframe in R: drie belangrijke verschillen - Statorials","isPartOf":{"@id":"https:\/\/statorials.org\/nl\/#website"},"datePublished":"2023-07-16T12:37:36+00:00","dateModified":"2023-07-16T12:37:36+00:00","author":{"@id":"https:\/\/statorials.org\/nl\/#\/schema\/person\/d4b8842173cca1bb62cdec41860e4219"},"description":"In deze zelfstudie worden de belangrijkste verschillen tussen data.tables en dataframes in R uitgelegd, inclusief voorbeelden.","breadcrumb":{"@id":"https:\/\/statorials.org\/nl\/gegevenstabel-versus-gegevensframe-in-r\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/statorials.org\/nl\/gegevenstabel-versus-gegevensframe-in-r\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/statorials.org\/nl\/gegevenstabel-versus-gegevensframe-in-r\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Thuis","item":"https:\/\/statorials.org\/nl\/"},{"@type":"ListItem","position":2,"name":"Data.table versus dataframe in r: drie belangrijke verschillen"}]},{"@type":"WebSite","@id":"https:\/\/statorials.org\/nl\/#website","url":"https:\/\/statorials.org\/nl\/","name":"Statorials","description":"Uw gids voor statistische competentie","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/statorials.org\/nl\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"de"},{"@type":"Person","@id":"https:\/\/statorials.org\/nl\/#\/schema\/person\/d4b8842173cca1bb62cdec41860e4219","name":"Dr.benjamin anderson","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/statorials.org\/nl\/#\/schema\/person\/image\/","url":"http:\/\/statorials.org\/nl\/wp-content\/uploads\/2023\/10\/Dr.-Benjamin-Anderson-96x96.jpg","contentUrl":"http:\/\/statorials.org\/nl\/wp-content\/uploads\/2023\/10\/Dr.-Benjamin-Anderson-96x96.jpg","caption":"Dr.benjamin anderson"},"description":"Ik ben Benjamin, een gepensioneerde hoogleraar statistiek die nu een toegewijde Statorials-lesgever is. Ik heb uitgebreide ervaring en expertise op het gebied van statistiek en ik ben vastbesloten om mijn kennis te delen met studenten via Statorials. Lees verder","sameAs":["http:\/\/statorials.org\/nl"]}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"_links":{"self":[{"href":"https:\/\/statorials.org\/nl\/wp-json\/wp\/v2\/posts\/3619","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/statorials.org\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/statorials.org\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/statorials.org\/nl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/statorials.org\/nl\/wp-json\/wp\/v2\/comments?post=3619"}],"version-history":[{"count":0,"href":"https:\/\/statorials.org\/nl\/wp-json\/wp\/v2\/posts\/3619\/revisions"}],"wp:attachment":[{"href":"https:\/\/statorials.org\/nl\/wp-json\/wp\/v2\/media?parent=3619"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/statorials.org\/nl\/wp-json\/wp\/v2\/categories?post=3619"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/statorials.org\/nl\/wp-json\/wp\/v2\/tags?post=3619"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}