优秀的编程知识分享平台

网站首页 > 技术文章 正文

本地数据导入和转换 - 网络统计学(10)

nanyue 2024-08-10 18:37:46 技术文章 11 ℃

在网络统计学中,格式化字符串、JSON 以及 EXCEL 文本文件(*.cvs 文件)等本地数据得到了广泛应用。这些数据具有强大的表达能力,能够灵活地描述各种复杂的统计数据结构,为数据解析、交换、存储和处理提供了极大的便利。

网络统计学平台具有强大得数据在线处理能力,但前提是将数据导入到平台才能进行进一步分析和计算。在不同网络统计学数据分析工具中,数据输入一般采用以下几种方式:

  • 代码输入:样本数据较少时采用;
  • localStorage本地数据:数据量不宜过大(因浏览器不同容量也不一样,建议控制在2MB内);
  • 本地文本文件:数据量不受限制,采用“记事本”等文本编辑软件管理数据非常方便;
  • EXCEL文档:数据量不受限制,利用EXCEL为数据载体导入数据。

上述数据输入需要设计相应的JS函数和方法,我们设计了YHTJ.min.js库函数,通过webTJ.类处理各种统计数据。

网页代码地址:“http://www.galaxystatistics.com/webTJX.html”。网页中“YHTJ.min.js”脚本文件为【银河统计工作室】编写的《网络统计学》数据处理库函数。将代码下载保存在本地运行、或打开网址即可运行本文中的JS代码。

网页代码显示如下:

一、代码中导入和转换

数据较少时,直接将数据按格式化字符串形式写入代码中。

I、格式化字符串转化为一维数组

webTJ.clear(); 
var oStr="22,45,34,56,76,21,54,34,27,51";     //定义数值字符串(手动输入数据)
var oArr=webTJ.getArr(oStr,",");              //字符串转换为一维数组(数据格式转换)
oArr=webTJ.Array.getQuantify(oArr);           //样本值数量化(字符转换为数值)  
var oMean=webTJ.Formula.getMean(oArr);        //计算样本平均数(数值计算)              
webTJ.display("平均数 = "+oMean,0);           //显示计算结果(数据输出)

II、格式化字符串转化为二维数组

webTJ.clear();
var oTxt="37,42,95|97,72,10|14,44,12|15,45,17";    //“|”为行分割符、“,”为列分割符;
var oArrs=webTJ.getArrs(oTxt,"|",",");      //将字符串转换为二维数组
webTJ.display(oArrs,0);                            //以文本方式显示数组变量oArrs
webTJ.display(oArrs,1);                            //以矩阵方式显示数组变量oArrs
webTJ.display(oArrs[3][2],0); 

III、JSON字符串转换为JSON对象

webTJ.clear(); 
var oStr='[{"city":"北京","area":16800,"population":1600},{"city":"上海","area":6400,"population":1800}]';
var oJSON=JSON.parse(oStr);                
webTJ.display(oJSON[0].city,0);
var oStr1='{"city":"上海","area":6400,"population":1800}';
var oJSON1=JSON.parse(oStr1);
webTJ.display(oJSON1.city,0);

二、localStorage读入本地数据

【代码:localStorage方法】

webTJ.clear(); 
var oStr="22,45,34,56,76,21,54,34,27,51";           //定义数值字符串
localStorage.setItem('txtTest1_lei',oStr);          //将字符按命名txtTest1_lei存储在本地
var oLocalStr=localStorage.getItem('txtTest1_lei')  //按命名获取本地数据获取
webTJ.display(oLocalStr,0);                         //显示本地数据
var oArr=webTJ.getArr(oLocalStr,",");               //字符串转换为一维数组
oArr=webTJ.Array.getQuantify(oArr);                 //样本值数量化  
var oMean=webTJ.Formula.getMean(oArr);              //计算样本平均数              
webTJ.display("平均数 = "+oMean,0);                 //显示计算结果
localStorage.removeItem('txtTest1_lei');            //按命名删除本地数据

按命名(txtTest1_lei)读入存储在本地的数据。webTJ统计类函数库由工作室开发开源使用,语法后面文章陆续介绍。

三、本地文本文件

相较于其他数据类型,本地文本文件在数据量方面具有明显优势,其数据量大小不受限制。此外,采用“记事本”等文本编辑软件对数据进行管理也是非常方便的。

建立本地文本数据时应该采用如下不同格式文本:

I、格式化文本文件并转换为二维数组

格式化文本文件样例:

地区,序号,大学,中专,文盲或半文盲|北京,1,9.3,30.55,8.7|天津,2,4.67,29.38,8.92|河北,3,0.96,24.69,15.21|山西,4,1.38,29.24,11.3|内蒙,5,1.48,25.47,15.39|辽宁,6,2.6,32.32,8.81|吉林,7,2.15,26.31,10.49|黑龙江,8,2.14,28.46,10.87|上海,9,6.53,31.59,11.04|江苏,10,1.47,26.43,17.23|浙江,11,1.17,23.74,17.46|安徽,12,0.88,19.97,24.43|福建,13,1.23,16.87,15.63|江西,14,0.99,18.84,16.22|山东,15,0.98,25.18,16.87|河南,16,0.85,26.55,16.15|河北,17,1.57,23.16,15.79|湖南,18,1.14,22.57,12.1|广东,19,1.34,23.04,10.45|广西,20,0.79,19.14,10.61|海南,21,1.24,22.53,13.97|四川,22,0.96,21.65,16.24|贵州,23,0.78,14.65,24.27|云南,24,0.81,13.85,25.44|西藏,25,0.57,3.85,44.43|陕西,26,1.67,24.36,17.62|甘肃,27,1.1,16.85,27.93|青海,28,1.49,17.76,27.7|宁夏,29,1.61,20.27,22.06|新疆,30,1.85,20.66,12.75

格式化字符串(文本)保存为TXT文本文件。建议用“记事本”保存为UTF-8编码文件。如:“dataSample.txt”。

【代码】

webTJ.clear();
webTJ.display(oLocalData,0);
var oArrs=webTJ.getArrs(oLocalData,"|",",");
webTJ.display(oArrs[3][3],0);

注:在运行代码前需要打开本地格式化文件(如dataSample.txt)赋值给全距变量oLocalData

操作步骤如下:

  • 建立表格数据格式化文本文件:采用“,”为表格数据列分割符、“|”为表格数据行分割符。格式化字符(串)通常用“*.txt”形式保存,如dataSample.txt
  • 数据变量oLocalData赋值:打开网页 - 点击【选择文件】打开指定文件。
  • 运行JS代码片段:打开指定格式化文本文件后,数据变量oLocalData被赋值,从而可以用Javascript脚本代码进行数据转换和处理。

III、导入本地CSV文本文件

CSV文本文件(*.csv)由EXCEL文档转存而来,操作过程和操作本地*.txt文件类似。

webTJ.clear();
//将本地文本文件字符串转换为二维数组(“\n”为换行符、“,”为列分割符;)
var oArrs=webTJ.getArrs(oLocalData,"\n",",");
webTJ.display(oArrs[3][1],0);  //显示二维数组第4行第2列元素:“男”

注:在运行代码前需要打开本地*.csv文件(如sampleData.csv)赋值给全距变量oLocalData

操作步骤如下:

  • 建立EXCEL文档:参考文件“http://www.galaxystatistics.com/webTJX/sampleData.xlsx”。
  • 转换EXCEL文档:将sampleData.xlsx转存为sampleData.csv文本文件。
  • 中文处理:如果sampleData.csv文件中有中文,用“记事本”转存为UTF-8编码文件。
  • 运行JS代码片段:打开*.csv文件后,数据变量oLocalData被赋值,从而可以用Javascript脚本代码进行数据转换和处理。

本文介绍了将结构化和半结构化统计数据导入网页并转换为数组的基本方法,这为使用 Javascript 处理数据奠定了重要的基础。

最近发表
标签列表