2
我有一段时间内发布的粉丝小说的CSV。它看起来是这样的:d3的关键函数可以处理一个列表元素吗?
id,published_date,characters
1,2017-01-01,'['Joe','Bob','Mary']'
2,2017-01-02,'['Mary']'
3,2017-01-02,'['Bob','Mary']'
我有不错的成功由published_date
写一个关键的功能,但现在我想看看我是否可以写一个关键功能characters
。因此,对于第一行,Joe,Bob和Mary都将是具有值2017-01-01
的密钥,然后在第二行2017-01-02
将被添加到Mary的密钥。最后,我想在published_date
上做一个rollup
,以便计算每天发布的关于Mary的粉丝小说的数量。我认为最终的数据会是这个样子:
{
Bob: {2017-01-01: 1}, {2017-01-02: 1},
Joe: {2017-01-01: 1},
Mary: {2017-01-01: 1}, {2017-01-02: 2}
}
所以对于published_date
,我的代码看起来像:
var dates = d3.nest()
.key(function(d) { return parseDate(d.published_date); })
.rollup(function(v) { return v.length; })
.entries(csv_data);
如果我characters
栏不是一个列表,那么我相信这会工作:
var dates = d3.nest()
.key(function(d) { return d.characters; }) // key by character
.key(function(d) { return parseDate(d.published_date); })
.rollup(function(v) { return v.length; })
.entries(csv_data);
有没有一种方法可以改变key(function(d) { return d.characters; })
来实际创建多个键?
谢谢!