Импорт CSV без заголовков в D3 - данные с числами и строками

Я работаю над визуализацией, где мне нужно импортировать некоторые данные CSV. Допустим, файл CSV выглядит примерно так:

1,4,abc
2,7,def
3,5,ghi
...

Файл csv не имеет заголовка, поэтому при поиске у меня есть код, который выглядит следующим образом:

d3.text("data.csv", function(text) {
    input = d3.csv.parseRows(text).map(function(row) {
        return row.map(function(value) {
            return +value;
        });
    });
    // do stuff here
});

Это прекрасно работает для данных, которые содержат только цифры, но мои данные имеют как числа, так и строки. Как я могу изменить этот код так, чтобы только определенные столбцы данных, которые я выбрал, превратились в числа?

1 ответ

Решение

Вы можете использовать индекс элемента в map Функция, чтобы увидеть, должно ли оно быть преобразовано в число:

 input = d3.csv.parseRows(text).map(function(row) {
    return row.map(function(value, index) {
        if(index == 2) {
            return value;
        } else {
            return +value;
        }
    });
});

Это будет работать только для вашего конкретного случая, хотя.

Другие вопросы по тегам