使用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中获得的相同结果?
我们可以使用melt同xtabs在R
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)