D3.csv修改输入数据
d3.csv modifying the input data
我使用d3。TSV解析文件。我想将数据的一列(PValue列)中的所有零更改为该列中下一个最小的数字。我认为正确的方法是使用accessor函数,但我的尝试到目前为止都失败了。
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
});
})
当我尝试在accessor函数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:
d3.tsv('data.tsv', function(error, data) {
//Option A
// smallest = d3.min(data, function(d) {return +d.PValue || Infinity; })
//Option B
var noZeroes = data.filter(function(d) { return +d.Data !== 0; });
var smallest = d3.min(noZeroes, function(d) { return d.Data; })
data.forEach(function(d) {
d.NAME = d.NAME;
d.logFC = +d.logFC;
d.logCPM = +d.logCPM;
d.FDR = +d.FDR;
if (+d.PValue == 0 ) {
d.Data = +smallest;
} else {
d.PValue = +d.PValue
}
});
console.table(data);
})
不要忘记数字值的"+",否则JS将其视为字符串,并且您的比较将失败。
您可以使用d3。Min从数据集中得到最小值。
例如
d3.tsv(filename, 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 || d3.min(data, function(d) { return d.PValue || Infinity; }));
});
})
相关文章:
- 将数据输入到draggable无法工作
- 带有数据输入的PHP/JavaScript web交互式图谱
- 在d3.json中使用d3.csv组合多个csv文件数据输入的最佳方法是什么
- 将iPhone位置数据输入谷歌地图
- 在javascript中测量websockets数据输入/输出的大小
- OKFN气泡树中的数据输入
- 使用setTimeout可以在进行数据输入时推迟时间密集型处理
- 当用户将数据输入表单时要知道的事件
- d3,数据.输入,不同的组
- 如何将应用程序的数据输入语言限制为英语(或拉丁字母)
- Google Charts Javascript,使用两个数组作为折线图的数据输入
- 在角度材料对话框数据输入/推送后更新ng-repeat
- 在 Angular 2 / TypeScript 中使用数据输入的 pdfMake
- PHP 看不到来自 javascript ajax FormData 的数据(输入类型文件)
- 如何将数据输入到 Javascript 以进行客户端处理
- 单击时将数据输入文本框
- 在vba的javascript弹出窗口中将数据输入txtfield
- 在firefox中,将数据输入到充当单选按钮的文本框中需要双击
- javascript 101:增值税计算器不响应数据输入
- 将数据输入和下拉选择组合到js中