R 将列表合并为行

R 将列表合并为行,r,dataframe,R,Dataframe,我是R新手,我想知道是否有一种通过列表创建数据帧的方法。这里有一个例子 n = c(1,4,5) b = c(7,19,20) v = c(3,8,9,4,5) x = list(n,b,v) 如果我使用命令x,我会得到列。如果它们具有相似的标题(如employee、count、id、行号、页面、页面访问),我是否可以将它们合并为行,并创建这样的数据框架 employee | count | id |row number| pages| page visits 1 4

我是R新手,我想知道是否有一种通过列表创建数据帧的方法。这里有一个例子

n = c(1,4,5)
b = c(7,19,20)
v = c(3,8,9,4,5)
x = list(n,b,v)
如果我使用命令x,我会得到列。如果它们具有相似的标题(如employee、count、id、行号、页面、页面访问),我是否可以将它们合并为行,并创建这样的数据框架

employee | count | id  |row number| pages| page visits

1          4       5    
7          19      20
3           8       9       4       5         

您可以从“stringi”软件包中尝试stri_list2matrix:

但是,示例数据只有5列,您希望创建一个包含6列的
data.frame


您也可以从我的“splitstackshape”软件包中尝试
listCol\u w

NA_real\uu
是这样的,结果可以保留为数字。(
NA_integer\u
在这里也适用。)

要求(plyr)
减少(函数(z,y)rbind.fill(z,
集合名(data.frame(as.list(y)),cnams[1:length(y)]),
x,,
init=setNames(data.frame(as.list(cnams))[0,],cnams))
员工计数id行数页数第页访问次数
1        1     4  5                 
2        7    19 20                 
3        3     8  9          4     5        

使用
x
可以得到向量,而不是列。我有一个列标题列表(30),一个列表只有一个观察值,在某些情况下(20),因此我得到列。关于向量你是对的。那么你是说你有一个
列表
data.frame
s,但是列数不同?请编辑您的问题,以包含实际代表您所面临问题的(小)样本数据。我的列表实际上不是向量。他们有一个观察数据,如员工、计数、id、行号、页面、页面访问。有什么建议我可以附加它们(少部分列表缺少列值)?
library(stringi)
stri_list2matrix(x, byrow = TRUE)
#      [,1] [,2] [,3] [,4] [,5]
# [1,] "1"  "4"  "5"  NA   NA  
# [2,] "7"  "19" "20" NA   NA  
# [3,] "3"  "8"  "9"  "4"  "5" 
library(splitstackshape)
listCol_w(data.table(id = seq_along(x), x), "x", fill = NA_real_)
   id x_fl_1 x_fl_2 x_fl_3 x_fl_4 x_fl_5
1:  1      1      4      5     NA     NA
2:  2      7     19     20     NA     NA
3:  3      3      8      9      4      5
require(plyr)
Reduce(function(z,y) rbind.fill(z,
                setNames( data.frame(as.list(y)), cnams[1:length(y )])),
      x, 
      init=setNames(data.frame(as.list(cnams))[0,], cnams) )

  employee count id row_number pages page_visits
1        1     4  5       <NA>  <NA>        <NA>
2        7    19 20       <NA>  <NA>        <NA>
3        3     8  9          4     5        <NA>