<div dir="ltr">Hey Frank, <div><br></div><div>Thanks for pointing out that SO link, I had missed it. </div><div><br></div><div>All, </div><div><br></div><div>I'm curious as to which used cases this functionality would be used in (used for?)</div>
<div><br></div><div>thanks, </div><div>Rick </div><div><br></div><div class="gmail_extra">
<br><br><div class="gmail_quote">On Wed, Aug 7, 2013 at 8:14 PM, Frank Erickson <span dir="ltr"><<a href="mailto:FErickson@psu.edu" target="_blank">FErickson@psu.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div>Hi Rick,</div><div><br></div><div>I guess it's intentional: Matthew saw this SO question (since he edited one of the answers): <a href="http://stackoverflow.com/questions/9547518/creating-a-data-frame-where-a-column-is-a-list" target="_blank">http://stackoverflow.com/questions/9547518/creating-a-data-frame-where-a-column-is-a-list</a></div>



<div><br></div><div>Some musings: Of course, to reproduce as.data.frame-like behavior, you can un-nest the list, so both functions treat it the same way.</div><div><br></div><blockquote style="margin:0 0 0 40px;border:none;padding:0px">


<div>Z <- unlist(Y,recursive=FALSE)</div><div><br></div><div><div>identical(as.data.table(Z),as.data.table(as.data.frame(Z))) # TRUE</div></div><div><div># or, equivalently (?)</div></div><div><div>identical(do.call(data.table,Z),data.table(do.call(data.frame,Z))) # TRUE</div>


</div></blockquote><div><br>
</div><div>On the other hand, going back the other direction (getting data.table-like behavior when data.frame's is the default) is more awkward, as seen in that SO question (where they mention protecting each sublist with the I() function). Besides, I'm with @flodel, who asked the SO question, in expecting data.table's behavior: one top-level item in the list mapping to one column in the result...</div>



<div><br></div><div>--Frank</div><div><br><div class="gmail_quote"><div><div class="h5">On Wed, Aug 7, 2013 at 4:56 PM, Ricardo Saporta <span dir="ltr"><<a href="mailto:saporta@scarletmail.rutgers.edu" target="_blank">saporta@scarletmail.rutgers.edu</a>></span> wrote:<br>



</div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5"><div dir="ltr"><div>Hi all, <br></div><div><br></div><div>Note the following discrepancy in structure between as.data.frame & as.data.table when called on a nested list.</div>



<div>as.data.frame converts the sublist into individual columns whereas as.data.table stacks them into a single column and creates additional rows. </div>
<div><br></div><div>Is this intentional? </div><div>-Rick</div><div><br></div><div><br></div><div><div>as.data.frame(X)</div><div>#        start       type      end data.editDist data.second</div><div># 1 start_node is_similar end_node             1  HelloWorld</div>




<div><br></div><div>as.data.table(X)</div><div>#         start       type      end       data</div><div># 1: start_node is_similar end_node          1</div><div># 2: start_node is_similar end_node HelloWorld</div></div><div>




<br></div><div><br></div><div><br></div><div><br></div><div>### Copy+Paste'able Below ###</div><div><br></div><div># Example 1:</div><div>X <-  structure(list(start = "start_node", type = "is_similar", end = "end_node", </div>




<div>    data = structure(list(editDist = 1, second = "HelloWorld"), .Names = c("editDist", </div><div>    "second"))), .Names = c("start", "type", "end", "data"))</div>




<div><br></div><div>as.data.frame(X)<br></div><div>as.data.table(X)</div><div><br></div><div>as.data.table(as.data.frame(X))</div><div><br></div><div><br></div><div># Example 2, with more elements:</div><div>Y <- structure(list(start = c("start_node", "start_node"), type = c("is_similar", "is_similar"), end = c("end_node", "end_node"), data = structure(list(editDist = c(1, 1), second = c("HelloWorld", "HelloWorld")), .Names = c("editDist", "second"))), .Names = c("start", "type", "end", "data"))</div>




<div><br></div><div>as.data.frame(Y)</div><div>as.data.table(Y)</div><div><br></div>
</div>
<br></div></div>_______________________________________________<br>
datatable-help mailing list<br>
<a href="mailto:datatable-help@lists.r-forge.r-project.org" target="_blank">datatable-help@lists.r-forge.r-project.org</a><br>
<a href="https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/datatable-help" target="_blank">https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/datatable-help</a><br></blockquote></div><br></div>
</blockquote></div><br></div></div>