Git Product home page Git Product logo

rmd4j's Introduction

lifecycle

Disclaimer: this package is still at an experimental level, and should only be used for testing, bug reports, and enhancement requests. As long as this package is in “Experimental” mode, some changes to the API are to be expected. Read the NEWS.md to be informed of the last changes.

This package has only been tested on these platforms for now, with the files found in inst/examples, so it might not work on others :

  • neo4j 3.3.3

    • Mac OSX
  • neo4j 3.4.0-alpha08

    • Linux Mint

    • Windows 10

rmd4j

The goal of {rmd4j} is to provide a knitr engine for running Neo4J inside an RMarkdown

Installation

You can install rmd4j from GitHub with:

# install.packages("remotes")
remotes::install_github("ThinkR-open/rmd4j")

Before using

You need to have downloaded the neo4j community edition, and have unpacked it.

In order to use this knitr engine, you must have a running connection to a Neo4J server, launched with $NEO4J_HOME/bin/neo4j start ($NEO4J_HOME being the folder you’ve unpacked neo4j into).

Note to Windows users: you might need to specify your path with \\, like C:\\USers\\colin\\Documents\\neo4j.

Test the package

If you want to test the package before using, there are three .Rmd inside the inst/examples folder that can be use for playing around.

Add the path to you Neo4J home directory, and test.

Any feedback is welcome!

Example

You can start a new document by using the RMarkdown template which comes with the package. This Rmd comes with the configuration chunk.

If you want to add a Neo4J engine to an existing Rmarkdown, add the set_neo4j_engine function inside the setup chunk in your RMarkdown.

If you follow the advices below about username and password, this should only be something like :

rmd4j::set_neo4j_engine(neo4j_home = "/Users/colin/soft/graphs/n4j")

But with more customisation:

rmd4j::set_neo4j_engine(neo4j_home = "/Users/colin/soft/graphs/n4j", 
                        neo4j_user = "colin", 
                        neo4j_passwd = "pouetpouet", 
                        neo4j_adress = "bolt://localhost:7687")

You can set:

  • neo4j_home the path to your Neo4J home directory
  • neo4j_user your Neo4J username
  • neo4j_passwd your Neo4J username
  • neo4j_format the format of the output (either auto, verbose, or plain, default is “plain”)
  • neo4j_adress the url of the server, default is “bolt://localhost:7687”

As this chunk might contain some sensible information (like you password), don’t forget to {r setup, include=FALSE} this chunk.

The chunks

Neo4J chunks should start with a ```{neo4j}.

You can run several Neo4J calls in the same chunk.

Please not that for now, comments are not supported (but we’re working on it) neo4j-rstats#4

{rmd4j} comes with an addin to add a chunk :

About passwords and username

If you don’t specify any neo4j_user and neo4j_passwd, set_neo4J_engine() will not use the --user and --password args of the cypher-shell.

In that case, you’ll need to have provided Neo4J your user name and password, or have disabled the password request (see below).

We strongly recommand to provide your Neo4J password outside of the Rmd, as it will prevent any unwanted share of these credentials.

Disable Neo4J password request

Go to $NEO4J_HOME/conf/neo4j.conf and uncomment the line : dbms.security.auth_enabled=true

Create aliases (recommanded)

Add to your bash profile:

export NEO4J_USERNAME='yourusername'
export NEO4J_PASSWORD='yourpassword'

Via : Neo4J Knowledge base

Output

You can mix any other content (including R, of course), inside your Rmarkdown :

Example

Using github_document as output :

From Rmd to md.

Contact

Questions and feedbacks welcome!

You want to contribute ? Open a PR :) If you encounter a bug or want to suggest an enhancement, please open an issue.

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

rmd4j's People

Contributors

colinfay avatar

Watchers

James Cloos avatar HarryZhu avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.