Try this:

L <- list(list(Sku = "1", Shape = 1, Scale = 1, DayOfYear = 1:3),
        list(Sku = "2", Shape = 2, Scale = 2, DayOfYear = 2:3))

f <- function(x) { x$DayOfYear <- paste(x$DayOfYear, collapse = ","); x }
write.table(do.call(rbind, lapply(L, f)), sep = ",", row.names =
FALSE, file = "")


On Mon, Aug 11, 2008 at 6:57 PM,  <[EMAIL PROTECTED]> wrote:
> I tried:
>
> cat("Sku,Shape,Scale,DayOfYear", file="SkuSalesInfo.dat", append=FALSE);
> for(i in 1:length(mlist))
> {
>    cat(mlist[[i]]$Sku, ",", mlist[[i]]$Shape, ",", mlist[[i]]$Scale, 
> file="SkuSalesInfo.dat", append=TRUE)
>    for(j in 1:length(mlist[[i]]$DayOfYear))
>    {
>      cat(",", mlist[[i]]$DayOfYear[j], file="SkuSalesInfo.dat", append=TRUE)
>    }
>    cat("\n", file="SkuSalesInfo.dat", append=TRUE)
> }
>
> But it is EXTREMELY slow.
>
> Kevin
>
> ---- [EMAIL PROTECTED] wrote:
>> I would like to read it (the data) iinto a different application (not 'R'). 
>> Within 'R' I can
>>
>> mlist[[1]]
>> > mlist[1]
>> [[1]]
>> [[1]]$Sku
>> [1] "0"
>>
>> [[1]]$Shape
>> [1] 250.0586
>>
>> [[1]]$Scale
>> [1] 91.9914
>>
>> [[1]]$DayOfYear
>> [1] 250
>>
>> OR
>>
>> mlist[[2]]
>> > mlist[[2]]
>> $Sku
>> [1] "100008"
>>
>> $Shape
>> [1] 178.9637
>>
>> $Scale
>> [1] 58.76785
>>
>> $DayOfYear
>>  [1]  82  89  93 108 123 123 125 185 186 260 261 266 266 270 270 270 270 273 
>> 276 276 276 277 277 277 277 278 278 279 341 357
>>
>> >
>> I essentially want to mimic this structure with the write.table but that is 
>> not what I am seeing. If I take the variable length list off then I get what 
>> appears to be a autogenerated list of headers for every row in the file. It 
>> is like the fact that this is a list of lists is forgotten.
>>
>> For each line of the file being something like (for the first two list 
>> elements above)
>>
>> 0,250.0586,91.9914,250
>> 100008,178.9637,58.767,85,82 ,89 
>> ,93,108,123,123,125,185,186,260,261,266,266,270,270,270,270,273,276,276,276,277,277,277,277,278,278,279,341,357
>>
>> Where 100008 is the part number (Sku), 178.9637 is the Shape, 58.767 is the 
>> Scale, and the remaining is the day of year list (variable length). There 
>> would be one of these rows for every part number. If I use dput I get more 
>> than I want and it doesn't mean anything to the external application that I 
>> am exporting the data to. Similarily 'dump' gives me a bunch of 'R' specific 
>> information about the data structure that an external application will not 
>> necessarily know what to do with. I just want a simple one row output as 
>> able.
>>
>> If I just write.table(mlist,.....) then I get the aforementioned warning 
>> about different lengths. If I iterate though the list:
>>
>> for(i in 1:length(mlist))
>> {
>>     write.table(mlist[[i]].....)
>> }
>>
>> Then I get a "50 or more warnings" error.
>>     50: In write.table(mlist[[i]], "SkuSalesInfo.dat", row.names = FALSE,  
>> ... :
>>       appending column names to file
>>
>> The file that is generated is HUGE (> 250Mb). It seems to be duplicating the 
>> row the by the number of elements in the variable list. So instead of one 
>> row I get:
>> "Sku","Shape","Scale","DayOfYear"
>> "100008",178.963659119674,58.7678453522722,82
>> "100008",178.963659119674,58.7678453522722,89
>> "100008",178.963659119674,58.7678453522722,93
>> "100008",178.963659119674,58.7678453522722,108
>> "100008",178.963659119674,58.7678453522722,123
>> "100008",178.963659119674,58.7678453522722,123
>> "100008",178.963659119674,58.7678453522722,125
>> "100008",178.963659119674,58.7678453522722,185
>> "100008",178.963659119674,58.7678453522722,186
>> "100008",178.963659119674,58.7678453522722,260
>> "100008",178.963659119674,58.7678453522722,261
>> "100008",178.963659119674,58.7678453522722,266
>> "100008",178.963659119674,58.7678453522722,266
>> "100008",178.963659119674,58.7678453522722,270
>> "100008",178.963659119674,58.7678453522722,270
>> "100008",178.963659119674,58.7678453522722,270
>> "100008",178.963659119674,58.7678453522722,270
>> "100008",178.963659119674,58.7678453522722,273
>> "100008",178.963659119674,58.7678453522722,276
>> "100008",178.963659119674,58.7678453522722,276
>> "100008",178.963659119674,58.7678453522722,276
>> "100008",178.963659119674,58.7678453522722,277
>> "100008",178.963659119674,58.7678453522722,277
>> "100008",178.963659119674,58.7678453522722,277
>> "100008",178.963659119674,58.7678453522722,277
>> "100008",178.963659119674,58.7678453522722,278
>> "100008",178.963659119674,58.7678453522722,278
>> "100008",178.963659119674,58.7678453522722,279
>> "100008",178.963659119674,58.7678453522722,341
>> "100008",178.963659119674,58.7678453522722,357
>>
>> The header seems to be duplicated for each element also.
>>
>> Any ideas?
>>
>> Thank you.
>>
>> Kevin
>>
>> ---- jim holtman <[EMAIL PROTECTED]> wrote:
>> > What do you want to do with the data?  Are you just storing it to read
>> > in it later?  Have you looked at 'save/load'?  If you want a character
>> > representation, try 'dput'; this can be read back in with 'source'.
>> > So it all depends on what you are planning to do with it.
>> >
>> > On Mon, Aug 11, 2008 at 4:14 PM,  <[EMAIL PROTECTED]> wrote:
>> > > I have a list
>> > >
>> > > List(Sku=" ", Shape=1, Scale=3, DayOfYear=daylist)
>> > > Note: picture daylist as c(2,3,4,3) it is a list with variable length.
>> > >
>> > > Then I have a list of lists
>> > >
>> > > al <- c(al, List(List(Sku=" ", Shape=1, Scale=3, DayOfYear=daylist))
>> > > Note: same comment on daylist as above.
>> > >
>> > > So far this creates a list of lists just how I want it. If I do al[1] I 
>> > > get each member and the variable length list 'daylist'.
>> > >
>> > > Now I want to export this list of lists:
>> > >
>> > > write.table(mlist, "SkuInfo.dat", row.names = FALSE,  sep=",")
>> > >
>> > > But I get an error that the list lengths are not equal. The only member 
>> > > of this list that has a variable length would be DayOfYear
>> > >
>> > > How can I output this list of lists when each element list contains a 
>> > > variable length list?
>> > >
>> > > Thank you.
>> > >
>> > > Kevin
>> > >
>> > > ______________________________________________
>> > > R-help@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
>> > Cincinnati, OH
>> > +1 513 646 9390
>> >
>> > What is the problem that you are trying to solve?
>>
>> ______________________________________________
>> R-help@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.
>
> ______________________________________________
> R-help@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.
>

______________________________________________
R-help@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.

Reply via email to