## ----setup, include = FALSE--------------------------------------------------- knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) skip_vignette <- !reticulate::py_module_available("kuzu") ## ----eval=FALSE--------------------------------------------------------------- # remotes::install_github("WickM/kuzuR") ## ----eval=FALSE--------------------------------------------------------------- # install.packages("kuzuR") ## ----eval=!skip_vignette------------------------------------------------------ library(kuzuR) # Create an in-memory database connection con <- kuzu_connection(":memory:") ## ----eval=!skip_vignette------------------------------------------------------ kuzu_execute(con, paste("CREATE NODE TABLE Person(name STRING, age INT64,", "PRIMARY KEY (name))")) kuzu_execute(con, "CREATE REL TABLE Knows(FROM Person TO Person, since INT64)") ## ----eval=!skip_vignette------------------------------------------------------ # Create a data frame of persons persons_df <- data.frame( name = c("Alice", "Bob", "Carol"), age = c(35, 45, 25) ) # Create a data frame of relationships knows_df <- data.frame( from_person = c("Alice", "Bob"), to_person = c("Bob", "Carol"), since = c(2010, 2015) ) # Load data into Kuzu kuzu_copy_from_df(con, persons_df, "Person") kuzu_copy_from_df(con, knows_df, "Knows") ## ----eval=!skip_vignette------------------------------------------------------ # Execute a query result <- kuzu_execute(con, paste("MATCH (a:Person)-[k:Knows]->(b:Person)", "RETURN a.name, b.name, k.since")) # Convert the result to a data frame df <- as.data.frame(result) print(df)