手把手教你用R语言读取CSV文件

article/2025/11/8 6:56:08


导读:R语言有许多种方法去获取数据,最常用的是读取CSV文件。

作者:Jared P. Lander

来源:大数据DT(ID:hzdashuju)

读取CSV文件最好的方法是使用read.table函数,许多人喜欢使用read.csv函数,该函数其实是封装的read.table函数,同时设置read.table函数的sep参数为逗号(",")。read.table函数返回的结果为data.frame

read.table函数的第一个参数为文件所在路径,可以是本地文件,也可以是网页上的文件。本书主要是从网页读取文件。

任意CSV文件都可以读取,这里使用read.table函数读取一个简单的文件(地址如下):

http://www.jaredlander.com/data/TomatoFirst.csv

> theUrl <-"http://www.jaredlander.com/data/TomatoFirst.csv"
> tomato <-read.table(file=theUrl, header=TRUE, sep=",")

利用head命令,我们可以看到下面的结果。

> head(tomato)

如前面所述,第一个参数是文件名(或字符型变量)。注意我们如何显式地使用参数名fileheadsep。函数的参数能够按位置顺序赋值,而不用显式指定参数名,但指定参数名是最佳实践。

第二个参数header,表示数据的第一行,即列名。第三个参数sed,表示数据的分隔符。可以设为“\t”(tab分隔符)或者“;”(分号分隔符),以读取不同类型的文件。

常用但不被熟知的参数是stringAsFactors。将该参数设为FALSE(默认是TRUE)可使字符所在列不被转换成factor列。这样既节省计算时间(当大数据集包含许多字符列,也意味着有许多唯一值),又能保留列为字符。

stringAsFactors参数也可以用在data.frame中。再次创建“Sport”列。

> x <- 10:1
> y <- -4:5
> q <- c("Hockey", "Football", "Baseball", "Curling", "Rugby",
+        "Lacrosse", "Basketball", "Tennis", "Cricket", "Soccer")
> theDF <-data.frame(First=x, Second=y, Sport=q, stringsAsFac=FALSE)
> theDF$Sport

read.table函数还有许多参数,最常用的是quotecolClasses参数,分别设置字符的包围符和每列的数据类型。

类似read.csv函数,也有其他用于read.table的封装函数,也有默认参数。它们主要的区别是sepdec参数。详细情况见表6-1。

▲表6-1 读取大文本文件的函数及其默认参数

大文件使用read.table函数读取到内存比较慢,幸运的是有解决方案。读取大CSV文件和其他文本文件的两个主流的函数是read_delimfread,前者在readr包中由Hadley Wickham实现,后者在data.table包中由Matt Dowle实现。read_delimfread运行相当快,因为两者都不把字符数据自动转换成factor

01 read_delim函数

readr包提供读取文本文件的一系列函数。最常用的是read_delim函数,读取有分隔符的文件,比如CSV文件。该函数的第一个参数是读取的文件路径或者URL。col_names默认为TRUE,指定文件的第一行为列名。

> library(readr)
> theUrl <- "http://www.jaredlander.com/data/TomatoFirst.csv"
> tomato2 <- read_delim(file=theUrl, delim=',')
Parsed with column specification:cols(Round = col_integer(),Tomato = col_character(),Price = col_double(),Source = col_character(),Sweet = col_double(),Acid = col_double(),Color = col_double(),Texture = col_double(),Overall = col_double(),`Avg of Totals` = col_double(),`Total of Avg` = col_double())

read_delim函数执行后会打印列名和数据类型信息,这些信息也可以使用head.read_delim函数获得。readr包中的所有数据提取函数返回的是tibble,该数据类型是data.frame的扩展。最明显的变化是打印的元数据,比如行列数和每列的数据类型。tibble会适应屏幕大小打印相应条数的行列数据。

> tomato2

read_delim函数不仅仅读取速度比read.table函数快,而且不需要设置stringAsFactors参数为FALSEread_csvread_csv2read_tsv函数是read.table函数分隔符分别为逗号(,)、分号(;)和tab(\t)的特殊情况。

注意,数据读取为tbl_df对象,它是tbl的扩展,也是data.frame的扩展。tbldata.frame的特殊类型,它在dplyr包中定义。每列的数据类型显示在列名的下面,这是个很好的功能。

readr包有一些对read_delim函数封装(预置分隔符)的辅助函数,比如read_csv函数和read_tsv函数。

02 fread函数

另一个读取大量数据的函数是data.table包的fread函数。第一个参数是读取的文件路径或者URL。header参数表示文件的第一行是列名,sep指定分隔符。该函数的stringAsFactors参数默认设为FALSE

> library(data.table)
> theUrl <- "http://www.jaredlander.com/data/TomatoFirst.csv"
> tomato3 <- fread(input=theUrl, sep=',', header=TRUE)

这里也可以使用head函数查看前几行数据:

> head(tomato3)

该函数读取速度比read.table函数快,结果为data.table对象。data.table对象是data.frame的扩展,其是data.frame的优化。

read_delim或者fread函数读取文件都非常快,具体使用哪个函数取决于dplyr或者data.table包中哪个更适合数据处理。

关于作者:贾里德 P. 兰德(Jared P. Lander),资深数据专家,Lander Analytics公司创始人兼CEO,纽约开放统计编程聚会负责人,哥伦比亚大学统计学兼职教授。在数据管理、多层次模型、机器学习、广义线性模型、可视化、数据管理和统计计算等多个领域拥有丰富经验。

本文摘编自《R语言:实用数据分析和可视化技术》(原书第2版),经出版方授权发布。

延伸阅读《R语言:实用数据分析和可视化技术》

点击上图了解及购买

转载请联系微信:DoctorData

推荐语:本书借鉴数据科学家Jared P. Lander在R语言上丰富的教学经验,通过大量实例,详细讲解R语言的核心功能。对于刚接触统计程序和模型的人,本书的内容组织结构使得学习R语言相当简单和直观。本书主要介绍R语言中20%的核心功能,但是这20%的功能足以让你解决80%的现代数据分析。

划重点????

干货直达????

  • 西安交大送大一新生这本书,你读过吗?12本有趣有料的科普书盘点

  • 终于有人把AI、BI、大数据、数据科学讲明白了

  • 监督学习、非监督学习、强化学习都是什么?终于有人讲明白了

  • 一条SQL引发的“血案”:与SQL优化相关的4个案例

更多精彩????

在公众号对话框输入以下关键词

查看更多优质内容!

PPT | 读书 | 书单 | 硬核 | 干货 讲明白 | 神操作

大数据 | 云计算 | 数据库 | Python | 可视化

AI | 人工智能 | 机器学习 | 深度学习 | NLP

5G | 中台 | 用户画像 1024 | 数学 | 算法 数字孪生

据统计,99%的大咖都完成了这个神操作

????


http://chatgpt.dhexx.cn/article/0xPKvnsQ.shtml

相关文章

R语言中 数据读取与写入

R中其他读取: source #读取R代码 dget #读取R文件 load #读取工作空间 一。R语言读取文本文件(.txt) 在R语言中,读取文本文件的函数可以是:read.table()、scan()、read.fwf(),也可以将.txt转换为.csv或.xlsx文件用其他函数读取。 1. read.table() 参数解释: …

R语言——数据格式和数据读取

R语言——数据读取之详解 福尔摩斯曾说过:“数据,数据,没有数据的推理是罪恶!” 不过比起有意思的统计分析,数据的导入与导出显得十分的无趣,但是不得不说统计分析的数据导入与导出是个让人沮丧的任务,而且耗时巨大。 今天分享的是R数据的储存数据格式,及其R中数据的输…

2019-07-15_linux下vi复制粘贴

vi 环境块复制 1、shiftv 进入行选模式 2、上下箭头选中要复制的块 3、“y”复制 4、“p” 粘贴 转载于:https://www.cnblogs.com/wbly2019/p/11187370.html

linux ubuntu vim复制粘贴,关于vim的复制粘贴

今天被vim的复制粘贴弄得很烦,它不像windows那样,每次复制会把以前的内容覆盖。所以有时粘贴出来的东西并不是你想要的。 在不同终端中,用vim打开的两个文件之间的复制粘贴 1. 用同一个终端,直接使用这个命令: vim file1 file2 这样就可以直接用y和p复制粘贴了。 但是这样…

在windows或linux中使用VIM/VI复制粘贴内容命令及设置大全

在windows或linux中使用VIM/VI复制粘贴内容命令及设置大全 行复制&#xff1a; 【yy】复制光标所在行 【p】在光标位置粘贴复制的内容 多行复制&#xff1a; 【v】从当前位置进行可视化模式&#xff08;【Ctrlv】则进行可视化块选择&#xff09; 此时按上下左右箭头移动光标选…

使用pip安装pymysql

本人使用的python版本是3.6&#xff0c;该版本是自带有pip.可以直接通过pip工具进行安装pymysql: 第一步&#xff1a;找到pip.exe路径。 例如我安装的目录如下&#xff0c;自带的pip工具的python版本&#xff0c;在Scripts目录下都能够找到。 第二步&#xff1a;通过cmd进入命令…

pycharm中安装pymysql

进入pycharm终端&#xff0c;输入pip install pymysql进行安装

Python——pymssql安装

下载&#xff1a; https://pypi.python.org/pypi/pymssql/2.0.1#downloads pymssql的安装包&#xff1a; pymssql-2.0.1.win32-py2.7.exe 32位与python对应 pymssql-2.0.0b1.win-amd64-py2.7.exe 64位与python对应 网上没找到&#xff0c;在csdn中下载…

pymysql的安装及使用及使用mysql数据进行可视化(适合入门,过程详细明确,如有错误请一定指出)

文章目录 Python连接MySQL数据库(pymysql)一、准备模块二、连接数据库connect()&cursor()三、对数据库进行操作execute()四、关闭数据库的连接close() 处理MySQL的数据及简单可视化一、简单的使用1.查询2.插入3.更新4.删除 二、获取数据三、可视化 Python连接MySQL数据库(p…

window 安装 pymysql

一、下载安装python-win 点击打开链接 二、下载安装setuptools 点击打开链接 三、下载安装 mysql 点击打开链接 四、安装pymysql 在python中执行python ez_setup.py文件&#xff0c;如果没有配置环境变量&#xff0c;可以在python安装路径中找到python.exe&#xff0c…

pymysql的使用

pymysql是从Python连接到MySQL数据库服务器的接口&#xff0c;其官方文档为&#xff1a;https://pymysql.readthedocs.io/en/latest/ 安装&#xff1a;pip install pymysql 对于数据库的操作&#xff0c;我们一般是这样的操作&#xff1a; 步骤1&#xff1a;连接数据库 步骤2&…

python的pymysql模块安装与使用

文章目录 一、pymysql的安装&#xff1a;二、pymysql基本控制函数&#xff1a;三、数据库数据的添加&#xff1a;四、数据库数据的删除&#xff1a;五、数据库数据的修改&#xff1a;六、数据库数据的批量添加&#xff1a;七、数据库数据的查询(取出)&#xff1a; 一、pymysql的…

在pycharm里安装pymysql

1、打开pycharm&#xff0c;进入terminal终端模式&#xff0c;输入pip install pymysql&#xff08;pip3 install pymysql&#xff09;

Py之PyMySQL:Python库之PyMySQL的简介、安装、使用方法之详细攻略

Py之PyMySQL&#xff1a;Python库之PyMySQL的简介、安装、使用方法之详细攻略 目录 PyMySQL的简介 PyMySQL的安装 PyMySQL的使用方法 PyMySQL的简介 PyMySQL包包含一个纯Python MySQL客户端库。PyySQL的目标是对MySQL LDAP进行替换&#xff0c;并对CPython、PyPy和IrPython进…

pymysql模块安装后,import pymysql找不到?

经常遇到这样的问题&#xff0c;windows里 cmd安装好了pymysql后&#xff0c;在开发时&#xff0c;import引入找不到模块为什么呢&#xff1f; cmd安装好的包&#xff0c;其实在真实的环境里已经安装好了&#xff0c;但是PyCharm工具需要手动加载一下。详细安装步骤如下&#…

pymysql安装包下载

运行pycharm&#xff0c;点击文件&#xff0c;点击设置&#xff0c;点击项目&#xff0c;选择项目下的python解释器&#xff0c;点击号&#xff0c;搜索pymysql&#xff0c;下载安装包即可。

PyMySQL的基本使用

我使用pymysql出现了以下的错误 python-module pymysql has no attribute connect 一出错 我本能的想去看下是不是我没连接成功 然后 pip3 install pymysql 不要起import的包名作为文件名啊&#xff01;&#xff01;&#xff01; 因此&#xff0c;我总结了下pymysql的基本使…

windows下Python安装pymysql

# 安装pymysql命令 # 从github 下载pymysql 安装包 # 下载地址&#xff1a;https://github.com/PyMySQL/PyMySQL # 解压下载文件&#xff0c;不用打开python交互界面&#xff0c;cd到解压文件所在目录 # 运行 python setup.py install # 打开python交互界面&#xff0c; # 运…

Python安装pymysql

Python安装pymysql 环境&#xff1a;jupyter Notebook(Anaconda) 1. 未安装pymysql 2. 打开cmd(命令提示符) 3. 出现错误 开始我简单粗暴的直接在cmd中输入&#xff0c;然后出现了404错误&#xff0c;提示我conda的配置状态权限有问题。&#xff08; 第13行中view your conf…

Windows下安装PyMysql(图文详解)

第一步&#xff0c;运行 cmd CD到你的python的安装目录 C:\>cd C:\Users\Administrator\AppData\Local\Programs\Python\Python38\ 这是我自己的&#xff0c;你的你自己找 第二步&#xff0c;CD到 Scripts目录下 cd Scripts 第三步&#xff0c;开始安装pymysql pip in…