There are many situations in R where you have a list of vectors that you need to convert to a data.frame. This question has been addressed over at StackOverflow and it turns out there are many different approaches to completing this task. Since I encounter this situation relatively frequently, I wanted my own S3 method for as.data.frame that takes a list as its parameter. I should note that it only works with atomic vectors (i.e. logical, integer, numeric, complex, character and raw). If any one of the elements in the list are of some other class type, the function will call NextMethod. However, on my R instance at least, this will end up calling as.data.frame.default which will in turn throw an error. To use the function you can source the function directly from Gist using the source_gist function in the devtools package. In this first example we have a list with two vectors, each with the same length and the same names. In this example we have a list of two vectors, same length, but only one has names. The function in this case will use the names from the first vector with names for the column names of the data frame. This is an example of what to avoid, three vectors of differing lengths and not named. The number of columns in the resulting data frame will be equal to the longest vector. For vectors less than that, NAs will be filled in on the right most columns. This method will also print a warning. This example shows the warning (and likely error too) that occurs when all of the elements of the list are not atomic vectors. Source.