因此,我被赋予了导入一些数据以进行可视化的任务。具体来说:
http://archive.ics.uci.edu/ml/machine-learning-databases/auto-mpg/auto-mpg.data
但是,我还没有关于如何导入.data文件的线索。此外,没有标题行来实际组织文件。
我尝试导入为文本并使用csv.parseRows()导致长度为1的数组只包含一个长字符串:
我尝试导入为d3.tsv()。每种技术最终都会将一行作为一个长字符串导入,如下所示。
"18.0 8 307.0 130.0 3504. 12.0 70 1 "chevrolet chevelle malibu""
我从来没有处理.data文件和使用D3的资源很少。任何有关处理此问题的帮助将一如既往地受到高度赞赏。你的人很棒。
感谢。
答案 0 :(得分:0)
您可以使用正则表达式来解析字符串:
/("[^"]+"|[^\s]+)\s*/g
使用此正则表达式,转动
18.0 8 307.0 130.0 3504. 12.0 70 1 "chevrolet chevelle malibu"
到
[
"18.0",
"8",
"307.0",
"130.0",
"3504.",
"12.0",
"70",
"1",
"\"chevrolet chevelle malibu\""
]
您可以通过按每个换行符拆分数据文件的内容,然后将每一行映射到正则表达式来为每一行执行此操作:
d3.text("http://archive.ics.uci.edu/ml/machine-learning-databases/auto-mpg/auto-mpg.data", function(data) {
var lines = data.split('\n');
var results = data.map(function (d) {
var match = d.match(regex);
return match.slice(1).map(function (d) { return d.trim(); });
});
});
这是一个快速的小提示,显示这应用于一行:http://jsfiddle.net/tftdepL4/1/