d3.js:如何导入浮点和字符串类型的csv数据

d3.js:如何导入浮点和字符串类型的csv数据,csv,d3.js,parsefloat,Csv,D3.js,Parsefloat,对d3和javascript非常陌生,但已经花了大约四个小时试图解决这个问题,但还没有找到解决方案 我想使用的.csv数据集既有字符串也有浮点数,请参见此处的示例集:,我当前在导入时遇到问题 d3.csv("http://individual.utoronto.ca/lannajin/d3/pcadummyset.csv") .row(function (d) { return { metric: d.metric, Var: d.Var,

对d3和javascript非常陌生,但已经花了大约四个小时试图解决这个问题,但还没有找到解决方案

我想使用的.csv数据集既有字符串也有浮点数,请参见此处的示例集:,我当前在导入时遇到问题

d3.csv("http://individual.utoronto.ca/lannajin/d3/pcadummyset.csv")
    .row(function (d) {
    return {
        metric: d.metric,
        Var: d.Var,
        param: d.param,
        PC1: +d.PC1, // convert "PC1" column to number
        PC2: +d.PC2, // convert "PC2" column to number
        Type: d.Type
    };
})
    .get(function (error, rows) {
    console.log(rows);
});
在这里,我尝试了第7行和第8行的变体:

PC1: d.parseFloat("PC1"),
PC1: parseFloat(d.PC1),
PC1: d.parseFloat.PC1,
等等

主要问题是我的浮点字符PC1和PC2的格式是1.0e-02,而不是0.001,这意味着我不能简单地使用+运算符将数据转换为浮点。相反,我必须使用parseFloat函数,不幸的是,我不知道如何使用它

当我将结构更改为提供的解决方案时

很明显,数据正在读取,但没有打印,因为PC1和PC2值可能正在作为字符串读取。我试图集成parseFloat函数,但它仍然无法绘制我的值


救命啊

那么问题是什么呢?它没有导入数据。当我在现场做一些事情时:它似乎在做一些事情,但我怀疑数据仍然没有被正确读取。主要问题是我的值被编码为1.0e-02而不是0.001,这意味着我不能使用+,但必须使用parseFloat。但是parseFloat不会产生任何响应,所以我认为我使用的parseFloat是错误的。你说你没有得到任何响应是什么意思?您是否收到任何错误消息?链接到您的示例数据不起作用,您是否检查了它是否正确加载?您认为这样做的诀窍是:为重物搬运提供道具!
data = d3.csv.parseRows("http://individual.utoronto.ca/lannajin/d3/pcadummyset.csv").map(function(row) {
    return row.map(function(value, index) {
        if(index == 2) {
            return value;
        } else {
            return +value;
        }
    });
});