Getting Data In and Out of R
(一)读取数据
读取数据所需的几种函数:
read.table
、read.csv
:最常用的读取列表数据函数,可返回数据框形式。readLines
:逐行读取文本文件,返回一个字符向量source
:读取R代码、脚本dget
:读取R代码(读取的是以逆句法分析后以文本文件储存的R对象)load
、unserialize
:把二进制对象读入R
read.table()参数:
file
:文件名(字符串,即文件路径)header
:逻辑标志,表明第一行是否有表头、行名(是变量名还是数据)sep
:分隔符(字符串,表明每一列是怎么分隔的,可能是逗号、冒号、空格等)colClasses
:字符向量(长度=数据集列数)说明数据集中每一列数据的类别nrows
:数据集中数据的行数comment.char
:字符串(用于表明文件中注释的字符)skip
:指定文件(非数据区域)从上到下多少行可忽略stringsAsFactors
:选择是否把文字变量编码为因子,默认为TRUE
将文件存至Rstudio识别的路径
在read.table()
函数中填写文件名之前,需要将文件存到正确的路径中
> ## 查看保存路径
> getwd()
[1] "d:/Program Files/RStudio"
> ## 修改保存路径
> setwd("E:/read data")
> ## 读取文件
> read.csv(data.csv, TRUE)
>
> ## 运行文件
> data <- read.csv("data.csv", header = FALSE)
> data
读取中小型数据集时
直接写文件名
> data <- read.table("foo.txt")
读取大型数据集时
你需要先清楚该数据占多大内存,如果不设置其他参数,R会默认将整个数据集都载入内存中。
- 如果文件中没有注释行的话,那可以把
comment.char
设置为空,即comment.char=""
colClasses
参数很重要,如果不设置,R会扫描每一列数据并判断其类型,非常耗费时间。- 如果所有列都是同一数据类型,可以直接统一设置
colClasses = numeric
- 如果所有列的数据类型不统一