Какой полезный пакет R в настоящее время не существует? [закрытый]

Ваша проблема заключается в переносе массивов, которые вы передаете в качестве аргумента, в циклы for. MATLAB читает for аргументов в строке, поэтому при подаче в нее столбца будет использоваться только первая итерация. Общие комментарии:

  • ' - комплексная транспонирование, .' - регулярная транспонирование.
  • i - это воображаемая единица в MATLAB , обычно не используют ее в качестве имени переменной.
  • 2:1:4 делает то же самое, что и 2:4, так как 1 является размером шага по умолчанию.
  • Пожалуйста, используйте точки с запятой, ;, после каждой строки, чтобы не допустить вывода MATLAB результата каждой строки в командное окно. Это облегчает запуск сценария, и если у вас есть матрицы с записями> 1M, отображение содержимого может даже привести к аварийному завершению программы. Даже в этом случае вы повторяете 720 записей из Cyl_P 720 раз. Для проверки содержимого переменных просто сломайте сценарий там, где это необходимо (или запустите его по частям), и изучите содержимое, где это оправдано (например, Cyl_P(1:3) здесь будет достаточно, чтобы проверить, заполняет ли цикл вектор как задумано).

21
задан 3 revs, 2 users 100% 4 January 2016 в 08:39
поделиться

10 ответов

Устройство вывода, которое создает код Javascript, возможно, с использованием библиотеки protovis.

8
ответ дан 29 November 2019 в 06:25
поделиться

Существует немного библиотек для взаимодействия с базой данных в целом, и нет библиотеки ORM.

RMySQL полезен, но вы должны писать SQL-запросы вручную, и нет способа сгенерировать их, как в ORM. Более того, это относится только к MySQL.

Еще один набор библиотек, которого R до сих пор не имеет, для меня это хорошая система для чтения аргументов командной строки: есть R getopt , но он не похож на, например, argparse в python .

4
ответ дан 29 November 2019 в 06:25
поделиться

Пакет FRAQ для часто задаваемых вопросов, а-ля fortune(). R-help будет очень весело: «Попробуйте это, library(FRAQ); faq("lattice won't print") и т. Д.

См. Также

».
3
ответ дан 29 November 2019 в 06:25
поделиться

Я хотел бы видеть возможность встраивания другого языка программирования в R более простым способом для пользователей. Я привожу это в качестве примера в некоторых реализациях Common-Lisp, можно написать функцию со встроенным кодом C, например:

(defun sample (x)
  (ffi:c-inline (n1 n2) (:int :int) (values :int :int) "{
    int n1 = #0, n2 = #1, out1 = 0, out2 = 1;
    while (n1 <= n2) {
      out1 += n1;
      out2 *= n1;
      n1++;
    }
    @(return 0)= out1;
    @(return 1)= out2;
    }"
   :side-effects nil))

Было бы хорошо, если бы можно было написать функцию R со встроенным кодом C или lisp. (более заинтересованы в последнем) аналогичным образом.

2
ответ дан 29 November 2019 в 06:25
поделиться

Мне бы очень понравился профилировщик строк. Это существует в Matlab и Python и очень полезно для поиска фрагментов кода, которые занимают много времени или выполняются больше (или меньше), чем ожидалось. Большая часть моего кода включает оптимизацию функций, и сколько раз что-то повторяется, может быть неизвестно заранее (хотя большинство итераций ограничено или определено).

Стек вызовов полезен, если весь ваш код написан на R и очень прост, но, как я недавно писал об этом , он требует кропотливых усилий, если ваш код сложен.

Довольно просто разработать линейный профилировщик для данного фрагмента кода. Наивным способом является индексирование каждой строки (или только предварительно определенных разделов) и вставка вызова для записи proc.time() этой строки. В цикле я просто перечисляю секции кода и сохраняю в двумерном списке значения proc.time для секции i в итерации k. [См. Обновление ниже: на самом деле это не способ сделать линейный профилировщик для всех видов кода.]

Такой инструмент можно использовать для поиска горячих точек, аномалий (например, кода, который должен быть O (n ), но на самом деле это O (n ^ 2)), код, который может выиграть от запоминания (профилировщик строк не говорит вам об этом, но он дает вам знать, где искать), код, который по ошибке находится внутри цикла, и многое другое.

Обновление 1: вставка строки синхронизации между каждой строкой функции немного ошибочна: определение строки кода - это не просто код, разделенный пробелом. Возможность разбирать код на AST необходима для того, чтобы знать, где начинаются и заканчиваются операции. Как обсуждалось в некоторых ответах на на этот вопрос , для этого есть несколько инструментов (а именно, showTree и walkCode в пакете codetools). Простое применение регулярного выражения к исходному коду - очень плохая вещь.

1
ответ дан 29 November 2019 в 06:25
поделиться

Естественный интерфейс для .NET framework был бы замечательным, хотя я подозреваю, что это может потребовать много работы.

EDIT: Подсветка синтаксиса из RGui также была бы замечательной.

ДРУГОЕ ИЗМЕНЕНИЕ: R.NET теперь существует для интеграции R с .NET.

4
ответ дан 29 November 2019 в 06:25
поделиться

A Real-Time R package would be my choice, using C Streaming perhaps.

Also I'd like a more robust web development package. Nothing as extensive as Ruby on Rails but something a bit better than Sweave combined with R2HTML, that can run on RApache. I think this needs to be a huge area of emphasis for R in general.

I realize LaTeX is better markup for certain academia but in general I think HTML should be the markup language of choice. More needs to be done in terms of R Web Apps, so applications can be hosted on huge RAM remotely and R can start being used for SaaS data applications and other graphics choices.

12
ответ дан 29 November 2019 в 06:25
поделиться

Собственный интерфейс .NET для RGUI. R (D) Com основан на COM, и он позволяет обмениваться только матрицами, а не более сложными структурами.

1
ответ дан 29 November 2019 в 06:25
поделиться

Интерфейсы к любой из новомодных баз данных Web 2.0, которые используют пары ключ-значение, а не стандартную RDMS. . Неисчерпывающий список (в алфавитном порядке) будет выглядеть так:

, и было бы, конечно, хорошо, если бы у нас была абстракция, похожая на DBI. Джефф начал с RBerkeley , но они использовали бэкэнд Oracle BerkeleyDB старой школы, а не одну из этих новых вещей.

10
ответ дан 29 November 2019 в 06:25
поделиться

Я бывший наркоман Mathematica, и мне очень не хватает интерфейса в стиле ноутбука. Когда я проводил исследование с помощью блокнотов, статьи писались почти сами собой, как я делал свой анализ. Но теперь, когда я использую R, я считаю, что документирование моей работы довольно утомительно.

Для людей, которые не очень знакомы с Mathematica, у вас есть документы, называемые «записными книжками», которые могут содержать код, текст, уравнения и результаты выполненного кода (которые могут быть уравнениями, текстом, графикой или интерактивными инструментами). Все можно аккуратно организовать в стилизованные подразделы или разделы, которые можно сворачивать. У вас может быть несколько открытых документов, которые интегрируются с одним общим ядром.

Хотя я не думаю, что полноценный интерфейс в стиле Mathematica полностью необходим,

16
ответ дан 29 November 2019 в 06:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: