R 将列表合并为行
我是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
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>