Какие алгоритмические/программные оптимизации делают data.table быстрым?

Я немного поискал в Интернете и ТАК искал введение или анализ того, что делает data.table таким быстрым, но я нашел только много (очень полезных) руководств, без разбивки того, что входит в программирование. (Я более или менее совершенно поражен тем, что не могу найти опубликованную статью для data.table, даже что-то от JStatSoft.)

У меня был класс алгоритмов, так что я знаю о сортировках, связанных списках, бинарных деревьях и тому подобном, но я не хочу делать никаких любительских догадок (особенно когда я иду объяснять академическим людям, почему это хорошая идея использовать его). ). Кто-нибудь может предложить краткое актуальное резюме со ссылками? Этот вопрос относится к слайдовой презентации что здорово, но информация поступает по частям (и даже документация, скажем, для setkey() не цитирует ссылку на data.table, а идет в Википедию).

То, что я ищу, является чем-то, что является одновременно не исходным кодом и не списком тем Википедии, а в идеале «официальным» ответом из источника (что делает его каноническим , что может очень помочь с all вопросы на орбите вокруг этой темы).

(Было бы здорово, если бы был технический документ, который я мог бы процитировать для этого (citation() для data.table - это просто руководство, но, конечно, оно не имеет прямого отношения к вопросу, что касается SO.)


person bright-star    schedule 20.05.2014    source источник
comment
Черт, я подумал, что это хорошо подходит для сайта. Что я пропустил?   -  person bright-star    schedule 20.05.2014
comment
Не мой отрицательный голос, но почему data.table так хорош, довольно субъективно, а также вопросы, в которых нас просят порекомендовать или найти инструмент, библиотеку или любимый сторонний ресурс, не относятся к теме Stack Overflow Часто задаваемые вопросы   -  person DNA    schedule 20.05.2014
comment
Определенно, технический документ — это как раз моя вещь. Я изменю формулировку вопроса, чтобы он не хлестал так сильно.   -  person bright-star    schedule 20.05.2014
comment
+1 Надеюсь, Арун или Мэтт напишут хороший канонический ответ. Я ожидаю, что он будет включать присваивание по ссылке/перераспределению, быструю сортировку и бинарный поиск.   -  person Roland    schedule 20.05.2014
comment
полезно, но мне все еще кажется, что это не входит в рамки сайта (конкретные вопросы программирования)   -  person Ben Bolker    schedule 20.05.2014
comment
Как вы думаете, было бы конкретно, если бы я попросил ответ, связывающий каждую оптимизацию с именованным вариантом использования? документы для data.table уже написаны таким образом.   -  person bright-star    schedule 20.05.2014
comment
Я не думаю, что это не по теме как таковой, поскольку в некотором смысле это явно о программных алгоритмах. Проблема, которую я вижу, заключается в том, что он запрашивает внешние источники, что кажется несколько не по теме. Может быть, если вы переформулируете свой вопрос, чтобы он был немного более техническим, и запросили ответ напрямую, а не ссылку на ответ. Также не помешало бы ограничиться конкретной операцией, потому что вопрос как таковой действительно очень широк.   -  person Niklas B.    schedule 20.05.2014
comment
Ну да, моя личная выгода в источниках, но выгода сайта в том, что ответ исходный, верно?   -  person bright-star    schedule 20.05.2014
comment
Да, точно. ТАК хочет быть самодостаточным. А хорошие ответы часто сами по себе являются замечательными источниками. Конечно, хороший ответ может также содержать ссылки для дальнейшего чтения, но он должен содержать всю необходимую информацию для ответа на конкретный вопрос.   -  person Niklas B.    schedule 20.05.2014