R数据读取的几点tips 2012-02-10

  1. read.table()、read.csv()适合读取小规模的数据框,但不是一种有效地读取大数值矩阵的方法,这种场合要使用更为底层的read.delim()甚至scan()函数。

  2. 默认情况下,R语言假定用NA表示缺失值,但这可以通过参数na.strings来改变。可以在读入数据时加上na.string= ‘no’,这样就自动把 ‘no’当作NA。

  3. 参数fill=T在非首行的数据比首行列数少时,自动填充后面的值为空值。

  4. 参数na.omit=T忽略错误和无法读取的行(缺失值),可以避免读取文件错误的中止。

  5. 默认情况下,读入字符变量直接转为factor因子变量,不恰当的因子变量会造成查看数据非常慢(因为要遍历因子所有的水平,通常会有很多个因子水平),这时可以用“as.is”参数来设置强制不转换。

  6. 默认情况下,read.table()等都是用#作为注释标识字符。如果碰到该字符(除了在被引用的字符串内),该行中随后的内容将会被忽略。只含有空白和注释的行则被当作空白行。如果确认数据文件中没有注释内容,用comment.char=”” 会比较安全 (也可以让速度比较快)。

  7. 在读取大型数据时,效率非常重要。设定comment.char=”“,以读取目标的原子向量类型(逻辑型,整型,数值型,复数型,字符型等)事先设置好每列的colClasses,给定需要读入的行数nrows (适当地高估一点比不设置这个参数还要快)等措施会部分地提高效率。如果需要试探数据,可以把nrows设置为10或者更小,这样就可以只读取并查看数据的前几行。



Powered by Jekyll on GitHub | ©2016 Meroa | Last modified: 2018-03-22