javascript - 如果列名是数字,d3 读取 csv/tsv 文件?

标签 javascript csv d3.js

使用世界银行的数据开展一个项目。他们的数据经过组织,在 csv 中将各个年份作为列名称。除了可能更改名称之外,我将如何使用 d3.csv 访问它们并将它们映射到自定义数组中,因为我不会使用所有值。

例如,我使用的文件是每个国家/地区的 GDP。每个元素/行的格式如下

"Country Name","Country Code","Indicator Name","Indicator Code", "1960","1961","1962","1963","1964","1965","1966","1967","1968","1969","1970","1971","1972","1973","1974","1975","1976","1977","1978","1979","1980","1981","1982","1983","1984","1985","1986","1987","1988","1989","1990","1991","1992","1993","1994","1995","1996","1997","1998","1999","2000","2001","2002","2003","2004","2005","2006","2007","2008","2009","2010","2011","2012","2013",

如果我想要英国、巴西、中国、俄罗斯、美国等国家 2004-2012 年的 GDP 值,我该怎么做?

代码看起来像这样吗

d3.csv(URL, function(d) {
     return {
         AttributeName : d.ColumnName
         //Continues for all columns I need
     };

});

同样,如果列名是实际整数,则 d.ColumnName 将不起作用。我将如何解释所示的列名称中的空格? 我还如何在文档本身或控制台中正确显示元素?

对于这么多问题,我深表歉意。请随时指导我找到解决方案。谢谢。

感谢拉尔斯的回答。我将附加我想做的下一步。现在,如果我想使用这些数据制作折线图,我将如何访问生成的对象数组?同样,我只想要 200 多个元素数组中的特定国家/地区。

最佳答案

您可以通过使用访问属性的替代语法来解决所有这些问题 - 而不是

d.foo

你可以写

d["foo"]

这也适用于空格、数字等:

d["11111"]
d["string with spaces"]

关于javascript - 如果列名是数字,d3 读取 csv/tsv 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22376317/

相关文章:

javascript - 为什么我只能在当前 session 中使用 blob

c# - 将用户页面添加到托管网站

PHP - 在 CSV 文件中搜索 URL 模式并替换它

c# - 检查 CSV 字符串是否包含给定值 C#

javascript - D3.js 是否支持 native 移动应用程序?

javascript - Chrome 中的 Web Audio API 延迟声音失真

javascript - 如何在 Javascript 中过滤对象数组

database - 将多个 (csv) 文件导入 Access 数据库的任何方式

javascript - 使用 d3 生成适合文本大小的矩形

javascript - 如何随着深度的增加减少 sibling 的横向距离,从而获得 D3.js 整洁的 TreeMap