Search code examples
rstringgraphviztostring

How do you convert a data frame column to a string?


What I am trying to do is take a column of a dataframe and convert it to a delimited string to be used as part of an input for a graphViz Function.

I have the following code:

library(DiagrammeR) 


vector <- ('A->1', 
       'B->2', 
       'B->3', 
       'B->4', 
       'C->A', 
       '1->D', 
       'E->A', 
       '2->4', 
       '1->5', 
       '1->F', 
       'E->6', 
       '4->6', 
       '6->7', 
       '6->7', 
       '3->8'
)


df = data.frame(vector)

strmap <- noquote(paste(df$vector,sep = " "))

noquote(
  paste(
    "digraph boxes_and_circles {", 
    paste(strmap)
    , "}"
  )
)

The output is:

 [1] digraph boxes_and_circles { A->1 } digraph boxes_and_circles { B->2 } digraph boxes_and_circles { B->3 } digraph boxes_and_circles { B->4 }
 [5] digraph boxes_and_circles { C->A } digraph boxes_and_circles { 1->D } digraph boxes_and_circles { E->A } digraph boxes_and_circles { 2->4 }
 [9] digraph boxes_and_circles { 1->5 } digraph boxes_and_circles { 1->F } digraph boxes_and_circles { E->6 } digraph boxes_and_circles { 4->6 }
[13] digraph boxes_and_circles { 6->7 } digraph boxes_and_circles { 6->7 } digraph boxes_and_circles { 3->8 }

The desired output is a string like this:

digraph boxes_and_circles { A->1 B->2 B->3 B->4 C->A 1->D E->A 2->4 1->5 1->F E->6 4->6 6->7 6->7 3->8 }

This string is the input to he grviz() function like so:

grViz(
  noquote(
      paste(
      "digraph boxes_and_circles {", 
      "A->1 B->2 B->3 B->4 C->A 1->D E->A 2->4 1->5 1->F E->6 4->6 6->7 6->7 3->8"
       , "}"
           )
        )
)

Thanks in Advance.


Solution

  • paste0("digraph boxes_and_circles {", paste0(vector, collapse = " "), "}")