Merry Christmas and Happy Holidays

I am attempting to use dput and or dget to send data along with a help request 
to another list (package specific).   Read the help pages for both and they 
appeared to be fairly simple functions.  Found an example on github and it 
appeared to be an easy task to replicate.   Alas, a copy and paste of the 
github example worked but my toy data example did not.

#  dput and dget functions
#  Example from github
set.seed(1337)
NN <- 10
theData <- data.frame(Alpha = rnorm(NN),
                      Beta = rnorm(NN))
theData$Gamma <- theData$Alpha * 2 + theData$Beta / 2 + rnorm(NN)
dput(theData, "temporary_file")
theDataReconstitutedAgain <- dget("temporary_file")
print(theDataReconstitutedAgain)


#  try it with my "toy data"library(data.table)
library(tidyr)
#  data table for melt and columns split
dt1 <- data.table(a_1 = 1:10, b_2 = 20:29,folks = c("art","brian","ed",
"rich","dennis","frank", "derrick","paul","fred","numnuts"),
a_2 = 2:11, b_1 = 21:30)
melted <- melt(dt1, id = "folks")[,c("varType","varIndex") :=
                                 tstrsplit(variable,"_")][,variable:=NULL]
#  melted has 40 observations from stacking a and b variables
#  which have lengths of 20 each
#  here cometh the frustrtion
dput(melted,"temp_file.txt")
goGetIt <- dget("temp_file.txt", keep.source = FALSE)
print(goGetIt)


> goGetIt <- dget("temp_file.txt", keep.source = FALSE)
Error in parse(file = file, keep.source = keep.source) : 
temp_file.txt:18:36: unexpected '<'
17: "varIndex"), row.names = c(NA, -40L), class = c("data.table", 
18: "data.frame"), .internal.selfref = <
^
> print(goGetIt)
Error in print(goGetIt) : object 'goGetIt' not found
> 
the help page states dput just writes an ASCII text representation of an R 
object to a file or connection, or uses one to recreate the object.  Nothing 
there about not allowing a data frame or data table and the github example was 
a data frame.   The line numbers referenced do not appear to refer to my code 
(but maybe they do and I am ignorant of the meaning) and the code works up to 
the dget line.

Typing dget in the console to see the inner workings of the function was not 
helpful.

Also, I am unclear as to just how dput and dget work.  If I save a subset of 
actual data to an object, then do dput on that object, can I rely that whomever 
I send my code to (which includes the dput statement) be able to retrieve the 
data?  In other words, dput saves the data in the code file?

Thanks for your help and may the holidays be wonderful for you and your loved 
one.
Carl Sutton

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to