Load
# install.packages('netknitr')
library(netknitr)
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
Data : It works for any data
set.seed(0009)
mtcars$name <- row.names(mtcars)
cols <- c('gear', 'name', "cyl")
my_data <- mtcars[,cols]
my_data
## gear name cyl
## Mazda RX4 4 Mazda RX4 6
## Mazda RX4 Wag 4 Mazda RX4 Wag 6
## Datsun 710 4 Datsun 710 4
## Hornet 4 Drive 3 Hornet 4 Drive 6
## Hornet Sportabout 3 Hornet Sportabout 8
## Valiant 3 Valiant 6
## Duster 360 3 Duster 360 8
## Merc 240D 4 Merc 240D 4
## Merc 230 4 Merc 230 4
## Merc 280 4 Merc 280 6
## Merc 280C 4 Merc 280C 6
## Merc 450SE 3 Merc 450SE 8
## Merc 450SL 3 Merc 450SL 8
## Merc 450SLC 3 Merc 450SLC 8
## Cadillac Fleetwood 3 Cadillac Fleetwood 8
## Lincoln Continental 3 Lincoln Continental 8
## Chrysler Imperial 3 Chrysler Imperial 8
## Fiat 128 4 Fiat 128 4
## Honda Civic 4 Honda Civic 4
## Toyota Corolla 4 Toyota Corolla 4
## Toyota Corona 3 Toyota Corona 4
## Dodge Challenger 3 Dodge Challenger 8
## AMC Javelin 3 AMC Javelin 8
## Camaro Z28 3 Camaro Z28 8
## Pontiac Firebird 3 Pontiac Firebird 8
## Fiat X1-9 4 Fiat X1-9 4
## Porsche 914-2 5 Porsche 914-2 4
## Lotus Europa 5 Lotus Europa 4
## Ford Pantera L 5 Ford Pantera L 8
## Ferrari Dino 5 Ferrari Dino 6
## Maserati Bora 5 Maserati Bora 8
## Volvo 142E 4 Volvo 142E 4
res <- lapply(names(my_data), FUN = function(i) {
paste0(i, " : ", my_data[[i]])
}) %>% do.call('cbind', .) %>% as.data.frame()
names(res) <- names(my_data)
res %>% head()
## gear name cyl
## 1 gear : 4 name : Mazda RX4 cyl : 6
## 2 gear : 4 name : Mazda RX4 Wag cyl : 6
## 3 gear : 4 name : Datsun 710 cyl : 4
## 4 gear : 3 name : Hornet 4 Drive cyl : 6
## 5 gear : 3 name : Hornet Sportabout cyl : 8
## 6 gear : 3 name : Valiant cyl : 6
my_data <- res
head(my_data)
## gear name cyl
## 1 gear : 4 name : Mazda RX4 cyl : 6
## 2 gear : 4 name : Mazda RX4 Wag cyl : 6
## 3 gear : 4 name : Datsun 710 cyl : 4
## 4 gear : 3 name : Hornet 4 Drive cyl : 6
## 5 gear : 3 name : Hornet Sportabout cyl : 8
## 6 gear : 3 name : Valiant cyl : 6
Determine Nodes
## id label group
## 1 1 gear : 4 gear
## 2 2 gear : 3 gear
## 3 3 gear : 5 gear
## 4 4 name : Mazda RX4 name
## 5 5 name : Mazda RX4 Wag name
## 6 6 name : Datsun 710 name
## 7 7 name : Hornet 4 Drive name
## 8 8 name : Hornet Sportabout name
## 9 9 name : Valiant name
## 10 10 name : Duster 360 name
## 11 11 name : Merc 240D name
## 12 12 name : Merc 230 name
## 13 13 name : Merc 280 name
## 14 14 name : Merc 280C name
## 15 15 name : Merc 450SE name
## 16 16 name : Merc 450SL name
## 17 17 name : Merc 450SLC name
## 18 18 name : Cadillac Fleetwood name
## 19 19 name : Lincoln Continental name
## 20 20 name : Chrysler Imperial name
## 21 21 name : Fiat 128 name
## 22 22 name : Honda Civic name
## 23 23 name : Toyota Corolla name
## 24 24 name : Toyota Corona name
## 25 25 name : Dodge Challenger name
## 26 26 name : AMC Javelin name
## 27 27 name : Camaro Z28 name
## 28 28 name : Pontiac Firebird name
## 29 29 name : Fiat X1-9 name
## 30 30 name : Porsche 914-2 name
## 31 31 name : Lotus Europa name
## 32 32 name : Ford Pantera L name
## 33 33 name : Ferrari Dino name
## 34 34 name : Maserati Bora name
## 35 35 name : Volvo 142E name
## 36 36 cyl : 6 cyl
## 37 37 cyl : 4 cyl
## 38 38 cyl : 8 cyl
Can include shapes and Colors
nodes$shape <- getShapes(nodes)
nodes$colors <- sample(c("darkred", "grey", "orange", "darkblue", "purple", 'green'), nrow(nodes), replace = T)
head(nodes)
## id label group shape colors
## 1 1 gear : 4 gear dot orange
## 2 2 gear : 3 gear dot orange
## 3 3 gear : 5 gear dot darkblue
## 4 4 name : Mazda RX4 name star orange
## 5 5 name : Mazda RX4 Wag name star green
## 6 6 name : Datsun 710 name star darkblue
Determine Edges
associations <- getAssociation(my_data[,cols])
edges <- getEdges(associations, nodes)
head(edges)
## from to
## 1 1 4
## 2 1 5
## 3 1 6
## 4 1 11
## 5 1 12
## 6 1 13