R - 从列表列表构造稀疏矩阵

Lun*_*oul 0 python r pandas

使用python和pandas我可以很容易地从字典对象列表构造一个稀疏的DataFrame.以下代码段显示了如何在pandas中完成此操作:

In [1]: import pandas as pd; (pd.DataFrame([{'a':1, 'b':10}, 
                                            {'d':99, 'c':1},
                                            {'b':1, 'd': 4}])
                                .fillna(0))
Out[1]: 
     a     b    c     d
0  1.0  10.0  0.0   0.0
1  0.0   0.0  1.0  99.0
2  0.0   1.0  0.0   4.0
Run Code Online (Sandbox Code Playgroud)

如果我想在R中轻松重现此行为怎么办?我们假设我有以下变量:

values <- list(list(a = 1, b = 10),
               list(d = 99, c = 1),
               list(b = 1, d = 4))
Run Code Online (Sandbox Code Playgroud)

然后,如何使用R获得在python中获得的相同结果?

akr*_*run 5

我们可以使用meltxtabsR

library(reshape2)
xtabs(value~L1 + L2, melt(values))
#     L2
#L1   a  b  c  d
#  1  1 10  0  0
#  2  0  0  1 99
#  3  0  1  0  4
Run Code Online (Sandbox Code Playgroud)