問題が発生しています。tsvのファイル名しかない場合。そのすべての情報を抽出して配列 (たとえば X) に保存するにはどうすればよいですか。ここで、tsv ファイルの各行は配列 (たとえば、y) で表されます。ここで、X は ys の配列です。
また、列名のヘッダーがわからない場合はどうすればよいですか?
問題が発生しています。tsvのファイル名しかない場合。そのすべての情報を抽出して配列 (たとえば X) に保存するにはどうすればよいですか。ここで、tsv ファイルの各行は配列 (たとえば、y) で表されます。ここで、X は ys の配列です。
また、列名のヘッダーがわからない場合はどうすればよいですか?
AJAX または純粋な XMLHttpRequest を使用する必要があります。
http://d3js.org/には、基本的にまさにあなたが望むことを行う組み込みの tsv リーダーがあります。
構文は次のとおりです。
d3.tsv("file.tsv", function(data) {
// use data here
});
data
変数は、ファイルの最初の行がキーとして読み込まれるキーと値のペアを持つオブジェクトの配列です。たとえば、
Number Awesomeness
1 5
2 3
戻り[{"Number":1, "Awesomeness":5}, {"Number":2, "Awesomeness":3}]
ます。
// get file contents, store in var str
var x = str.split('\n');
for (var i=0; i<x.length; i++) {
y = x[i].split('\t');
x[i] = y;
}
console.debug(x);
ファイルの内容を取得する方法については、これらのファイルが配置される場所 (クライアント マシン、サーバーなど) を指定する必要があります。
ファイルがクライアント マシンにある場合は、困難な道のりが待っている可能性があります。
ファイルがサーバー上にある場合は、AJAX リクエストを実行してファイルの内容を取得する必要があります。
これには、D3、JQuery、またはその他のフレームワークを使用する必要はありません。プレーンでシンプルな JavaScript (AJAX 手法):
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (xhttp.readyState == 4 && xhttp.status == 200) {
var arrayWithValues = xhttp.responseText.trim().split('\t');
console.log(arrayWithValues);
};
};
xhttp.open("GET", "/some.tsv", true);
xhttp.send();
あなたはAlasqlライブラリでそれを行うことができます:
alasql('SELECT MATRIX * FROM TSV("mydata.tsv")',[],function(res){
console.log(res);
});