Sort list of vectors into single frequency table with a factor column
===

I have a data frame containing a list vector with jagged entries:

	df = data.frame(x = rep(c(1,2), 2), y = rep(c("a", "b"), each = 2))

	L = list()
	for (each in round(runif(4, 1,5))) L = c(L, list(1:each))
	df$L = L

For example,

	x y          L
	1 a          1
	2 a 1, 2, 3, 4
	1 b    1, 2, 3
	2 b    1, 2, 3

How could I create a table which counts the values of L for each x, across the values of y?  So, in this example it would output something like,

		1	2	3	4
	X
	1	2	1	1	0
	2	2	2	2	1

I had some luck using

	tablist = function(L) table(unlist(L))
	tapply(df$L, df$x, tablist)

which produces,

	$`1`
	
	1 2 3 
	2 1 1 
	
	$`2`

	1 2 3 4 
	2 2 2 1 

However, I'm not sure how to go from here to a single table.  Also, I'm beggining to suspect that this approach might start taking an unruly amount of time for large data frames.   Any thoughts / suggestions would be greatly appreciated!