javascript-如何使用d3.csv()检查CSV中的值类型?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript-如何使用d3.csv()检查CSV中的值类型?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2206字,纯文字阅读大概需要4分钟。
内容图文
![javascript-如何使用d3.csv()检查CSV中的值类型?](/upload/InfoBanner/zyjiaocheng/686/7b05ccb147d840caa03f9ec2b32785fb.jpg)
我想知道在D3或纯JavaScript中是否有任何方法可以在读取数据时即时检查数据类型.
例如,如果我想使用d3.csv()进行箱形图读取“iris.csv”,是否有任何方法可以检查sepal_length,sepal_width,petal_length和petal_width是数字变量,而种类是类别变量?
解决方法:
让我们看看使用您链接的CSV的一种可能的解决方案:
sepal_length,sepal_width,petal_length,petal_width,species
5.1,3.5,1.4,0.2,setosa
4.9,3.0,1.4,0.2,setosa
4.7,3.2,1.3,0.2,setosa
4.6,3.1,1.5,0.2,setosa
etc...
您不能立即执行typeof,因为d3.csv会将所有内容都转换为字符串:
d3.csv("https://gist.githubusercontent.com/curran/a08a1080b88344b0c8a7/raw/d546eaee765268bf2f487608c537c05e22e4b221/iris.csv", function(data) {
var variables = data.columns;
variables.forEach(function(d) {
console.log("typeof " + d + ": " + typeof(data[1][d]))
})
})
<script src="https://d3js.org/d3.v4.min.js"></script>
但是,我们可以使用isNaN检查该字符串是否包含数字(警告:使用null或空字符串不能正常使用):
d3.csv("https://gist.githubusercontent.com/curran/a08a1080b88344b0c8a7/raw/d546eaee765268bf2f487608c537c05e22e4b221/iris.csv", function(data) {
var variables = data.columns;
variables.forEach(function(d) {
console.log(d + " is: " + (isNaN(data[0][d]) ? "categorical" : "numeric"))
})
})
<script src="https://d3js.org/d3.v4.min.js"></script>
如您所见,我们只需要data.columns来获取标头,然后,我们只需要第一行值(即data [1],而不是data [0]).实际上,可以使用除第一行(data [0])以外的任何行.
编辑:
您在comments中问:
Have you got any more insight how to deal with missing value/null or empty string in the dataset?
一种简单的方法是检查值是否为伪造…
!data[index][d]
…并转到下一行,直到找到合适的值:
var index = 1;
while (data[index][d] === "null" || data[index][d] === "") {
++index;
}
这是演示,我在CSV中放入了一些null和空字符串,看看:
var csv = `sepal_length,sepal_width,petal_length,petal_width,species
null,,null,0.2,setosa
null,3.0,1.4,,setosa
null,3.2,1.3,0.2,null
4.6,3.1,1.5,0.2,setosa
5.1,3.5,1.7,0.2,setosa`;
var data = d3.csvParse(csv);
var variables = data.columns;
variables.forEach(function(d) {
var index = 1;
while (data[index][d] === "null" || data[index][d] === "") {
++index;
}
console.log(d + " is: " + (isNaN(data[index][d]) ? "categorical" : "numeric"))
})
<script src="https://d3js.org/d3.v4.min.js"></script>
内容总结
以上是互联网集市为您收集整理的javascript-如何使用d3.csv()检查CSV中的值类型?全部内容,希望文章能够帮你解决javascript-如何使用d3.csv()检查CSV中的值类型?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。