Britt Anderson
2011-Mar-28 22:03 UTC
[R] How to import variable length lists of lists into R from text file?
I will be collecting data where one of the fields may be of length zero to some variable number of elements, along with other items of fixed size. As an illustration if mydata.dat is: V1 V2 V3 V4 V5 1, 2.3, "Bob", {1.7,2.3,3.4}, 4.5 2, 3.4, "Carol", {}, 3.4 3, 2.2, "Ted", {1.0,2.5}, 3.5 ... ... I want to be able to do something like mydata <- read.csv("./mydata.dat") and have the field with curly braces live in a single cell of the data frame as a potentially empty list of floating point numbers. Is this possible? I am creating the text file so I can put in whatever characters would be useful to facilitate this operation. The curly braces are just for example purposes. Thank you, Britt Anderson
jim holtman
2011-Mar-28 22:38 UTC
[R] How to import variable length lists of lists into R from text file?
Try this -- I added commas in the first line (header) so it looks like a CSV file:> x <- textConnection('V1, V2 , V3 , V4 , V5+ 1, 2.3, "Bob", {1.7,2.3,3.4}, 4.5 + 2, 3.4, "Carol", {}, 3.4 + 3, 2.2, "Ted", {1.0,2.5}, 3.5')> # read in the lines and then replace {} with quotes > x.line <- readLines(x) > close(x) > x.line.q <- chartr("{}", '""', x.line) > # now re-read the data > input <- read.csv(textConnection(x.line.q), as.is = TRUE) > closeAllConnections() > inputV1 V2 V3 V4 V5 1 1 2.3 Bob 1.7,2.3,3.4 4.5 2 2 3.4 Carol 3.4 3 3 2.2 Ted 1.0,2.5 3.5>On Mon, Mar 28, 2011 at 6:03 PM, Britt Anderson <britt.uwaterloo at gmail.com> wrote:> I will be collecting data where one of the fields may be of length > zero to some variable number of elements, along with other items of > fixed size. > > As an illustration if mydata.dat is: > > V1 V2 ? V3 ? ? ? ? ? V4 ? ? ? ? ? ? V5 > 1, 2.3, "Bob", {1.7,2.3,3.4}, 4.5 > 2, 3.4, "Carol", {}, 3.4 > 3, 2.2, "Ted", {1.0,2.5}, 3.5 ... > ... > > I want to be able to do something like mydata <- > read.csv("./mydata.dat") and have the field with curly braces live in > a single cell of the data frame as a potentially empty list of > floating point numbers. Is this possible? I am creating the text file > so I can put in whatever characters would be useful to facilitate this > operation. The curly braces are just for example purposes. > > Thank you, > Britt Anderson > > ______________________________________________ > R-help at r-project.org mailing list > 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. >-- Jim Holtman Data Munger Guru What is the problem that you are trying to solve?