2

protovisを使用してflickrデータセットを視覚化しようとしています。視覚化の部分は理解していますが、データへのアクセスについて質問があります。視覚化の例が提供され、次のようにデータにアクセスします。

var data = pv.range(250).map(function(row) {
    return {
        views: parseInt(Data.data(row, 2)), //refers to the 4 row and 2nd collumn in CSV
        users: Data.data(row, 6),
        date:  Data.data(row, 8))), //more collumns excist but for now we only use these
     };
  });

私が理解しているように、データセットの一部は変数データ、つまりビュー、ユーザー、日付に保存されています。この変数は辞書のようにアクセスできますか?

私がやろうとしているのは、1人のユーザーが2回以上発生する日付があるかどうかを確認することです。私は次のようにvarデータをループすることを考えました:

dateUserDict {};

for (d=0; d < data.date.length; d++ ){
    for (i=0; i < data.users.length; i++ ){
        for (j=0; j < data.users.length; j++){
            if (data.users[i] == data.users[j]){
                userCounter++ //this should count the number of occurences of a specific user on a specific date
                dateUserDict[data.date] = [data.user][userCounter]}
        }
    }
}

これは機能していないようです。イベント(特定の日付にユーザーが発生した回数)を辞書に保存しようとしています。説明されているように辞書を入手すれば、全体を簡単に視覚化できます。しかし、私を悩ませているのは、最初のdict(データ)から2番目のdict(dateUserDict)へのこの変換です!

どんな助けやプッシュも大歓迎です!

ありがとう

ジョリット

4

1 に答える 1

1

指定した関数は、オブジェクトのJavascript配列を生成します。

var data = pv.range(250).map(function(row) {
  return {
    views: parseInt(Data.data(row, 2)), //refers to the 4 row and 2nd collumn in CSV
    users: Data.data(row, 6),
    date:  Data.data(row, 8))), //more collumns excist but for now we only use these
  };
});

結果は次のようになります。

var data = [ {views:10, users: 9, date: '09/13/1975'}, ... ]

したがって、data.users.lengthを使用する代わりに、data.lengthを使用し、data.users [i]の代わりに、data[i].usersなどを使用する必要があります。

于 2011-04-27T20:08:43.037 に答える