javascript 读取csv文件

JavaScript014

javascript 读取csv文件,第1张

js读取CSV格式数据,参考如下:

<script type="text/javascript">     

// This will parse a delimited string into an array of  

// arrays. The default delimiter is the comma, but this  

// can be overriden in the second argument.  

function CSVToArray( strData, strDelimiter ){  

// Check to see if the delimiter is defined. If not,  

// then default to comma.  

strDelimiter = (strDelimiter || ",")  

   

// Create a regular expression to parse the CSV values.  

var objPattern = new RegExp(  

(  

// Delimiters.  

"(\\" + strDelimiter + "|\\r?\\n|\\r|^)" +  

   

// Quoted fields.  

"(?:\"([^\"]*(?:\"\"[^\"]*)*)\"|" +  

   

// Standard fields.  

"([^\"\\" + strDelimiter + "\\r\\n]*))"  

),  

"gi"  

)  

   

   

// Create an array to hold our data. Give the array  

// a default empty first row.  

var arrData = [[]]  

   

// Create an array to hold our individual pattern  

// matching groups.  

var arrMatches = null  

   

   

// Keep looping over the regular expression matches  

// until we can no longer find a match.  

while (arrMatches = objPattern.exec( strData )){  

   

// Get the delimiter that was found.  

var strMatchedDelimiter = arrMatches[ 1 ]  

   

// Check to see if the given delimiter has a length  

// (is not the start of string) and if it matches  

// field delimiter. If id does not, then we know  

// that this delimiter is a row delimiter.  

if (  

strMatchedDelimiter.length &&  

(strMatchedDelimiter != strDelimiter)  

){  

   

// Since we have reached a new row of data,  

// add an empty row to our data array.  

arrData.push( [] )  

   

}  

   

   

// Now that we have our delimiter out of the way,  

// let's check to see which kind of value we  

// captured (quoted or unquoted).  

if (arrMatches[ 2 ]){  

   

// We found a quoted value. When we capture  

// this value, unescape any double quotes.  

var strMatchedValue = arrMatches[ 2 ].replace(  

new RegExp( "\"\"", "g" ),  

"\""  

)  

   

} else {  

   

// We found a non-quoted value.  

var strMatchedValue = arrMatches[ 3 ]  

   

}  

   

   

// Now that we have our value string, let's add  

// it to the data array.  

arrData[ arrData.length - 1 ].push( strMatchedValue )  

}  

   

// Return the parsed data.  

return( arrData )  

}  

   

</script>

这需要使用 JavaScript 进行读取 CSV 文件的操作。通过使用Ajax来读取CSV文件,并实时将其中的数据作为饼图的数据源,从而实现数据的实时更新。以下是根据您提供的图片3所做的示例

Ajax (Asynchronous JavaScript and XML) 是一种创建异步Web应用程序的技术。Ajax允许在不重新加载整个页面的情况下从服务器端加载数据,从而提高了用户体验和网页性能。

Ajax主要使用XMLHttpRequest对象来实现数据交互,并通过JavaScript和CSS来更新页面。Ajax请求在后台与服务器进行通信,因此它不需要阻塞用户界面,用户仍然可以继续与页面交互。

Ajax应用的一个简单的例子是:在页面中输入关键字,立即在页面下方更新搜索结果,而不是整个页面的重新加载。这就是Ajax的一种常见用例,它提高了网页的加载速度,并提高了用户的体验。

不管是读取数据还是写入,R都是在工作路径中完成的。所以首先我们要知道我们的R所在的工作路径是在哪里。使用getwd()函数来获取我们的工作路径。

下面查看工作路径里面有哪些文件,使用dir()函数

如果你所想导入的数据并不在你当前的工作路径中,有两种方法可以解决。第一种就是把数据文件放到工作路径中,第二种方法就是更改工作路径。更改工作路径使用setwd()函数。比如你想要把工作路径设置成桌面

现在我读取我工作路径中,名字为hw1_data.csv的文件。使用read.csv()函数

也可以使用read.table()函数来读取csv格式的文件。由于csv文件的分隔符是“,”所以我们在用read.table()函数的时候,sep参数,我们要设定为sep=“,”

发现read.table()读出来的数据,列名并不是我们文件中的列名,而是V1,V2。。。我们需要加上header这个参数来修改这个问题

另外在read.table()函数族中还有很多参数,对我们读取数据都有帮助,大家可以去了解下。使用?read.table()进行了解