ファイルを解析するのにd3.tsvを使用しています。データの1つの列(PValue列)のすべての0をその列の次の最小番号に変更したいとします。私はこれを行う正しい方法は、アクセサー関数を使用することだと考えていますが、私の試みはこれまでに失敗しました。d3.csv入力データの変更
d3.tsv(filename, modifyData, function(error, data) {
data.forEach(function(d) {
d.NAME = d.NAME;
d.logFC = +d.logFC;
d.logCPM = +d.logCPM;
d.FDR = +d.FDR;
d.PValue = +d.PValue
});
})
アクセサー関数modifyDataで次のようなことをしようとすると、上記のコードで 'data'が定義されていないというエラーが表示されます。
function modifyData(d){
d.forEach(function(origData){
origData.PValue = +origData.PValue
pValue_array.push(origData.PValue)
})
var pValue_array = []
for (var i = pValue_array.length-1 ; i >= 0; i--){
if (pValue_array[i] === 0){
pValue_array.splice(i,1);
}
}
var newPzero = (arrayMin(pValue_array))
return d;
};
arrayMinは配列の最小値を返す単純な関数です。私はPValue列のすべての0を置き換えるためにこの値を使用することを計画していました。ヘルプは大歓迎です!
最小値除外0が必要です。ここを見てください:http://stackoverflow.com/questions/29261994/use-d3-min-to-find-lowest-value-that -is-not-0である。 0が表示されたときに最小値を置き換えるだけです。 – Klaujesi
@Klaujesiはい、0の部分を置き換えるのに問題があります。 –