我正在尝试使用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
};
});
据我所知,数据集的一部分现在存储在变量数据中,即视图,用户和日期。这个变量能够像字典一样被访问吗?
我要做的是检查一个用户出现的日期是否超过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(数据)到第二个(dateUserDict)的转换,这让我感到烦恼!
非常感谢任何帮助或推动!
谢谢
jorrit
答案 0 :(得分: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等。