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; })
來實際創建多個鍵?
謝謝!