[New R Package] rosr: Create academic R markdown projects for open science and reproducible research
Repo
https://github.com/pzhaonet/rosr
What is the project about?
Weeks ago, I gave a short training course at one of the top institutes in the world. The course was called 'R, Open Science and Reproducible Research', abbreviated as ROSS. It was given to the academic researchers who were interested in R and reproducible research. The R markdown family, including 'rticles', 'bookdown', 'xaringan' etc., were introduced. The audience were excited in the course. They felt, however, confused after the course by using these packages on their own work. It is not easy to connect their own work with the R Markdown ecosystem.
Figure 1. Academic work elements and R (adapted from the book Learning R)
Researchers often struggle with some annoying problems. In a conventional workflow, people get results from datasets, and thy have to copy these results (numbers, figures, tables, etc.) into their productions such as journal manuscripts, dissertations, slides, or posters. If the datasets or the calculations are updated, they have to repeat copying, which causes many potential problems. Can we avoid doing these stupid stuff?
Yes, if using R Markdown.
R Markdown is a document format that embeds code chunks (of R or other languages) in Markdown documents for literate programming. With years of development and continuous contributions from the open-source community, users nowadays can use R Markdown not only for writing documents and books, but also for producing reproducible academic articles, dissertations, slides, posters, and even websites. Although it has been seven years since the first idea of R Markdown came out, many people in academia nowadays are unaware of this handy tool yet, probably because of the difficulty at the beginning of learning R.
After the ROSS course, I decided to develop a package which integrates various academic elements, including data, codes, images, manuscripts, dissertations, slides and so on, into a single reproducible academic project. The datasets, codes and documents should be well connected so that they can be easily synchronized and updated. users don't have to repeat copying and pasting their results and figures from time to time. It will be easy for the scientific researchers to use, even if they are R beginners, or even non-R-users.
I chose the name 'rosr' rather than 'ross' so that users could easily use a search engine to find it, rather than the well-know scientist Ross Geller.
Figure 2. Dr. Ross Geller from Friends
What are the current features?
Briefly speaking, the current features of 'rosr' are as follows.
- Users can create a brand new project with demo files in user-selected directories. The project has a well-organized structure. The demo files can be demo datasets, images, codes, journal manuscripts, books, slides, posters, mind maps, or websites. They are well connected, which means that all the documents will update automatically if the data or the codes change.
Figure 3. The connections in a rosr project.
Users can add new sub-project to an existing project according the sub-project type they choose.
Users can create a skeleton project with no demo files when they get used to the way how 'rosr' works.
Users can use a single R markdown file for the mathematic equations they use, and cross refer them in different documents. The advantage is that users do not have to copy and paste the same equation to different documents. If they want to update a certain equation, they only have to update the equation file.
Figure 4. An equation sheet in a rosr project.
The detailed usage of 'rosr' is out of the scope of this post. A tutorial of 'rosr' will be available soon.
Technology Stack
'rosr' is developed in R language.
Roadmap
In the future, more features will be brought into 'rosr' as follows.
- The insertion of equations will be improved. Currently, equations are inserted via the function
eq()
and users have to specify the number or label of an equation. A friendly GUI, which could be an RStudio addin or a shiny app, would be expected for code-haters. - More choices of the sub-projects with demos will be added to the arguments of the functions.
- A GUI for creating or maintaining a project is expected for, again, code-haters.
How to contribute?
Anyone can get in touch with me by leaving me a reply on steem @dapeng or on https://github.com/pzhaonet/rosr.
Your contribution has been evaluated according to Utopian policies and guidelines, as well as a predefined set of questions pertaining to the category.
To view those questions and the relevant answers related to your post, click here.
Need help? Chat with us on Discord.
[utopian-moderator]
Thank you very much for your review. I totally agree with your comments. A simple example for the output can be obtained via
rosr::rosr_new()
. More examples and detailed explanation will come in subsequent tutorials. I will definitely avoid committing the computer-generated documents in the future.Thank you for your review, @helo! Keep up the good work!
cool. open dataset + open science is definitely a good combination, and a lot of potential works can be done in that domain.
支持一下大鹏前辈。现在CN区参与utopian的人似乎不多?
Yeah, a lot of work to do! Wanna join me?😉
好久不混 cn 区了,不清楚现状,但论乌托邦的话行长是大佬。
好啊,还挺有兴趣的,方便的话可以讨论下,有更详细一点contribution guideline或feature doc我可以看下哈
嗯嗯,我最近才开始用steem,想学习下utopian应该可以参与
看 utopian.io 就可以了,写得很详细。再看看别人发帖的示例。
好的,谢谢!
您提到的one of the top institutes,是在哪?只是好奇~
马普所。吹一下牛。
Wow, hello Alan Turing! Utopian翻译也可以参与 但是我N久没翻了
hello, Donica!哈哈,好啊,翻译感觉有些无聊哈~ 我也去学习下~
哈哈 又见R 好奇🍎学得怎么样了 Ross太经典了
学 R 30 天:从入门到放弃……@dancingapple
Hi @dapeng!
Your post was upvoted by @steem-ua, new Steem dApp, using UserAuthority for algorithmic post curation!
Your post is eligible for our upvote, thanks to our collaboration with @utopian-io!
Feel free to join our @steem-ua Discord server
Congratulations! Your post has been selected as a daily Steemit truffle! It is listed on rank 2 of all contributions awarded today. You can find the TOP DAILY TRUFFLE PICKS HERE.
I upvoted your contribution because to my mind your post is at least 7 SBD worth and should receive 113 votes. It's now up to the lovely Steemit community to make this come true.
I am
TrufflePig
, an Artificial Intelligence Bot that helps minnows and content curators using Machine Learning. If you are curious how I select content, you can find an explanation here!Have a nice day and sincerely yours,
TrufflePig
Hey, @dapeng!
Thanks for contributing on Utopian.
We’re already looking forward to your next contribution!
Get higher incentives and support Utopian.io!
Simply set @utopian.pay as a 5% (or higher) payout beneficiary on your contribution post (via SteemPlus or Steeditor).
Want to chat? Join us on Discord https://discord.gg/h52nFrV.
Vote for Utopian Witness!