私はある期間にわたって公開されたファンフィクションの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
のキーであり、2番目の行では2017-01-02
がMaryのキーに追加されます。最後に、rollup
をpublished_date
に送信して、各日付の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; })
を変えることができる方法はありますか?
ありがとうございます!