Должен ли я указывать все пакеты R, которые я использовал?

Введение: R это программный инструмент с открытым исходным кодом для статистического анализа и построения графиков, который активно используется в различных научных дисциплинах и становится все более и более популярным (хотя во многих областях он уже достаточно популярен). Помимо базовой версии люди отовсюду разрабатывают так называемые пакеты, загружают их, например, в CRAN, откуда их можно свободно скачать для использования.

В: Я пишу рукопись для рецензируемого психологического журнала и использую Rв своей работе множество пакетов. Конечно, я хочу и буду цитировать Rсебя и пакеты, на которые я сильно полагался (например, для моделирования или анализа данных). Однако у меня также есть несколько пакетов, из которых я использовал только одну маленькую функцию. Например, я использовал oddфункцию из gtoolsпакета, чтобы определить, является ли целое число нечетным или четным. Насколько я вижу, функция состоит всего из одной строки, и я мог бы написать ее сам (но не стал!). С одной стороны, я хочу отдать должное этим разработчикам, с другой стороны, я не хочу раздувать свой список литературы и путать читателей. Итак, вопрос в том, должен ли я цитировать каждый Rпакет, который я использовал?

Кстати: обратите внимание, что Rу него есть хорошая функция citation("some package")для доступа к информации о цитировании, предоставленной авторами пакета; см. также citation()цитировать Rсебя.

Вот похожий вопрос: tex.stackexchange.com/questions/156189/… . Я думаю, суть в том, что вы должны указать все пакеты, которые повлияли на ваши результаты (для воспроизводимости), но вам не нужно указывать те, которые вы использовали для построения графиков, создания таблиц и т. д. Благодарности — правильное место для такого рода пакетов. .
toLatex(sessionInfo())дает вам все, что вам нужно, чтобы люди могли воспроизвести вашу среду.
более важным, чем цитирование, является обмен данными и кодом.
Ссылка на R и его пакеты (в свете ответов ниже) поддержала бы разработку таких замечательных, но бесплатных инструментов с открытым исходным кодом.

Ответы (5)

В целом, я бы посоветовал вам ошибиться и указать слишком много пакетов (с номерами версий, пожалуйста!), хотя oddвполне вероятно, что это пограничный случай. Я бы рационализировал эту тенденцию как баланс для всех людей, которые широко используют пакеты, но не цитируют их.

В общем, я бы, конечно, привел все, что сэкономило мне нетривиальный объем собственной работы (например, «Я мог бы сделать это сам, но это, вероятно, стоило бы мне полдня»).

Длина вашего списка литературы не должна вызывать беспокойства во времена публикации в формате PDF. И «мы использовали R [3], пакеты foo [4] и bar [5], а также несколько вспомогательных функций [6-10]» не должно сбивать с толку ваших читателей.

Вы должны цитировать все, что вы используете. Возможно, многие этого не сделают, потому что используют слишком много пакетов. Это не должно мешать вам цитировать. Итак, вот как цитировать несколько пакетов одновременно: blogs.ethz.ch/mylifesciencejourney/2017/07/14/…
К сожалению, в некоторых случаях у этой стратегии есть практическое ограничение: по крайней мере, в моем случае все еще существует много ограничений по количеству страниц, которые сильно ограничивают количество ссылок, которые можно дать в статье...
@walls: Эта ссылка не работает.

ДА.

Есть много причин, и нет причин не делать этого (если только вы не находитесь в каком-то странном ограничении пространства/чернил).

Вот важная и недооцененная причина:

Большинство людей, которые создают различные пакеты R, на самом деле люди, которые создали сам R, являются другими учеными . Значение: им не платили конкретно за время, которое они потратили на создание lme4, ggplot2, stargazer и т. д. Разработка программного обеспечения очень недооценивается в академических кругах. Представьте, что вы тратите много времени на написание и поддержку пакета, которым пользуются тысячи людей в вашей области, а затем комитет по продвижению по службе спрашивает вас, почему вы не написали больше статей или не провели больше экспериментов. Очень трудно заставить кого-то, кто не является пользователем (или даже человеком, ориентированным на программное обеспечение), правильно оценить время и навыки, затраченные на создание хорошего программного обеспечения.

Единственный способ убедить университетские системы и лидеров в том, что работа, которую вы потратили на написание этого программного обеспечения, — это показать их так, как они понимают, то есть с помощью цитат . Их не будет волновать ваша репутация Stack Exchange или сколько у вас сока на GitHub, им нужно что-то, что Scopus может вычислить, и они могут перечислить и подсчитать.

Большая часть разработок научных кругов основана на бобах.. Большая часть усилий в университетах посвящена подсчету этих бобов и управлению ими. Сколько студентов в вашей программе, сколько грантов присуждено, сколько докторов наук. защита, а также количество опубликованных и цитируемых статей — все это очень важные компоненты, от которых зависит, кто получит ресурсы. Было бы действительно грустно, если бы кто-то, написавший полезный пакет R, не получил должного признания и, таким образом, не получил бы разрешения на создание более замечательных инструментов. Представьте, что если бы Хэдли не начал работать в R-Studio, он мог бы когда-нибудь стоять перед каким-нибудь комитетом и спрашивать его, почему он тратил столько времени на написание «программ», а не «документов», или пытаться объяснить, почему он не может этого сделать. взять третий курс в этом семестре, потому что заведующий кафедрой не понимает, что написание программного обеспечения — это то, что на самом деле требует реального времени.

Также учтите следующее: большинство научных статей цитируется менее 10 раз, если вообще цитируется. Достаточно полезный пакет R, вероятно, повлияет на гораздо большее количество людей, чем любая «настоящая» публикация, но этот человек не получит признания, если вы не процитируете его.

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

Абсолютно! Цитаты бесплатны, и они являются благословением для создателей этих пакетов. Если вы не ограничены строгим лимитом страниц, нет причин не иметь раздел «методы», в котором вы перечисляете все пакеты, которые вы использовали. Это может быть одно предложение. Если вы хотите уделить почетное место нескольким ключевым пакетам, на которые опиралась ваша работа, дайте каждому из них по предложению, но не пренебрегайте остальными. Когда-нибудь вы будете счастливы, когда другие будут цитировать вашу работу.

На этот вопрос нет однозначного ответа, но вот что я делаю.

  1. Я цитирую сам R и пакеты, которые мне нужны для фактического анализа, о котором я сообщаю в своей статье. Я не цитирую пакеты, которые, по моему мнению, предоставляют различные инструменты (графические инструменты, математические инструменты и т. д.). Грань между ними, конечно, иногда бывает трудно провести.
  2. Всегда, всегда делайте свои данные и код общедоступными. Вы должны убедиться, что другие люди могут повторить ваш результат. Другие люди также могут видеть, какие пакеты вы использовали.

Хорошо, я понимаю, что этой теме 6 лет. Так что извините, что раскопал. Впрочем, может быть, моя рутина поможет и кому-то еще.

Обычно я делаю это примерно так же, как Сверре, и цитирую в основной статье R и наиболее важные пакеты для своих анализов. Однако дополнительно я привожу все пакеты в виде таблицы в приложении с 4 столбцами ( имя пакета , версия , сопровождающий , цитирование ).

Вот небольшой, но полезный фрагмент для этой цели. Он создает data.frame с 3 из 4 упомянутых столбцов и файл .bib с необходимыми цитатами. Для завершения работы над приложением по-прежнему требуется некоторая ручная работа (например, копирование таблицы .csv в программу Word/Text и импорт .bib в инструмент управления цитированием).
Фрагмент по-прежнему экономит мне много времени.

# Export Citations as Bibtex (.bib)
write_bib(file="Bibliography of packages.bib")

# Table (.csv) with all information on the packages
appendix_packages <- data.frame(Packagename = character(),
                                Version = character(),
                                Maintainer = character())

require(pacman)
for (pkg in p_loaded()){
  appendix_packages <- appendix_packages %>% add_row(
    Packagename = pkg,
    Version = as.character(packageVersion(pkg)),
    Maintainer = maintainer(pkg)
  )
}

write.csv(x = appendix_packages, file = "List_of_packages.csv", row.names = F)

Изменить август 2022 г.

Раскрытие информации Я являюсь сопровождающим datscienceR-пакета. Поскольку я так часто использовал эту функцию, я также включил ее Rcitation_appendix()в пакет datscience: Documentation Website , Code
Usage:

library(datscience)
library(lavaan)
Rcitation_appendix(filename="Appendix A - All R packages utilized.docx")

Это создает папку с именем «Appendix» в текущем каталоге и помещает в нее два файла: файл слова .docx с таблицей и файл .bib для вашего менеджера ссылок. Позже я вручную ввожу ссылки в самый правый столбец (Цитирование)введите описание изображения здесь

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