Skip to content
Matt Dowle edited this page Jan 23, 2018 · 38 revisions

This page is experimental. Here we collect the fringe public comments related to data.table, in date order. Fringe in the sense of peripheral or extreme but also subtle. These can often go quietly viral and gently sway a community over time. For those for who English is not their first language, sarcasm and jest are powerful tools sometimes on display here. We have always added all articles we are aware of to the articles page if they mention data.table (whether positive or negative) and will continue to do so. Even so, the sentiment of the articles page is overwhelming positive. The goal of this fringe page is to collect public comments (anything that is not an article, since that belongs on the articles page) with a bias towards the negative to aid potential new users in their quest to build a full unbiased picture of the data.table package.

Or, in other words, a problem shared is a problem halved.


23 Jan 2018 hrbrmstr on Twitter

I think the other bit is that data.table does (despite what some tribal members posit) whack some of the extract (i.e. [], [[]]) idioms. So some "data.frame" syntax does not work & causes confusion. That bit me when making widgets. I always normalize widget df input to data.frame

22 Jan 2018 hrbrmstr on Twitter

data.table is 👍 if you really need munging speed in R & can tolerate unreadable hieroglyphics. I’ll take tidyverse + ops in DBs any day.

To weigh any opinion you need to know what they do to know whether they do a similar thing to what you do and what their motivations are. I have previously replied regarding the tribal adjective here on his article and here on twitter. Since he knows this is troubling to me, he continues to use the words to taunt.


28 Aug 2017 Jose Manuel Vera‏ on Twitter

Use data.table for wrangling data without the ugly data.table syntax https://cran.r-project.org/web/packages/dataPreparation … #rstats

It doesn't feel good for your work to be called "ugly". My only response was to retweet it so that others see it and help/suggest. To engage to disagree (of course I disagree strongly) will waste time and likely end badly. To not engage leaves negative sentiment others will find. I have no idea how to handle people who use such hateful words for any work, let alone work that is offered freely.


25 April 2017 Adam T. Austin‏ on Twitter

Collaborating with someone who uses data.table. My loyalty to the #tidyverse grows greater by the second... cc @hadleywickham #rstats

This was copied to #rstats, retweeted by Hadley and intended to be widely seen. It is not pleasant to be denied the knowledge of why you're being criticized publicly. Unfortunately, this tactic does work and it does sway a community. Perhaps the tweeter or his collaborator have misunderstood something; we will never know. Replying to ask risks escalating and taking even more time. Time I can't make.

My response was to retweet this one from earlier in the month. I hadn't felt it was appropriate to retweet that before. Silly, isn't it.
8 April 2017 Thọ Duy Nguyễn‏ on Twitter

back to data.table after a long time with dplyr #rstats


24 Mar 2017 @statquant on Twitter

@MattDowle is up to another bloody benchmark, #python stocks are tumbling down

The word "bloody" is used in a negative connotation to convey that benchmarking is not appreciated by them. After the comma is sarcasm. It is a jibe. Anyway, if you ever need row-wise recursive updates within group, then take a look at the S.O. answer which shows how to reduce 19.2s to 0.27s using data.table together with Rcpp. My question was answered and here is how to do similar in Python.


25 Dec 2014 Hadley Wickham on Hacker News

Data tables are extremely fast but I think their concision makes it harder to learn and code that uses it is harder to read after you've written it. It's very reminiscent of APL.

Our response: See the hacker news item and comparing dplyr to data.table on Stack Overflow.
The word reminiscent was used to convey the notion of-the-past and is meant as criticism. Note that Hadley was responding to a positive post about data.table on Hacker News. The original item was :

Anyone doing R comparisons should use data.table instead of data.frame. More so for benchmarks. data.table is the best data structure/query language I have found in my career. It's leading the way in The R world, and in my way, in all the data-focused languages.

Hadley sought to shoot down this positive sentiment. His negative sentiment is what has stuck in the community rather than the original post which was positive. That's what works.


26 Jun 2014 Hadley Wickham on Stack Overflow

Also read.csv() reads everything into a big character matrix and then modifies that, does fread() do the same thing? In fastread we guess column types and then coerce as we go to avoid a complete copy of the df.

The Stack Overflow question is "Reason behind speed of fread in data.table package in R" and an implicit compliment to data.table. That's the context. The comment is a subtle way to i) create doubt about fread and ii) announce his new fastread package which had not been known before that. fastread subsequently became readr.