在 R 中导入常见数据类型

发布日期:2026-07-03 21:08:03   来源 : 杭州电子商务研究院    浏览量 :12
杭州电子商务研究院 发布日期:2026-07-03 21:08:03  
12

介绍

为了开始数据分析或建模项目,您首先需要获取数据并将其导入到您选择的工具中。

在本指南中,您将学习使用 R 中的基本函数来处理 JSON、CSV 和 XML 数据。这将使用来自运输统计局的数据来说明这些函数的用法。本指南假定您对 R 编程语言有基本的了解。如果您需要复习,可以观看有关使用 R 进行编程的课程。

导入 CSV 文件

逗号分隔值 (CSV) 是一种共享数据的常用格式,因为它简单易懂。通常,数据文件中的每一行代表一个新的观察结果。在每一行中,不同的属性用逗号分隔。

read.csv函数内置于utils包中。这意味着在 R 中读取 CSV 文件不需要第三方包。

在当前工作目录中创建以下data.csv 。

      year,efficiency,sales
1980,24.3,8949000
1985,27.6,10979000
1990,28,9303000
1991,28.4,8185000
1992,27.9,8213000
1993,28.4,8518000
1994,28.3,8991000
1995,28.6,8620000
1996,28.5,8479000
1997,28.7,8217000
1998,28.8,8085000
1999,28.3,8638000
2000,28.5,8778000
2001,28.8,8352000
2002,29,8042000
2003,29.5,7556000
2004,29.5,7483000
2005,30.3,7660000
2006,30.1,7762000
2007,31.2,7562000
2008,31.5,6769000
2009,32.9,5402000
2010,33.9,5636000
2011,33.1,6093000
2012,35.3,7245000
2013,36.4,7586000
2014,36.5,7708000
2015,37.2,7517000
2016,37.7,6873000
2017,39.4,6081000
    

您可以从 R IDE 运行以下代码来导入它:

      csv <- read.csv('data.csv', header = TRUE)
csv

typeof(csv)
    

输出:

      > csv <- read.csv('data.csv', header = TRUE)
> csv
   year efficiency    sales
1  1980       24.3  8949000
2  1985       27.6 10979000
3  1990       28.0  9303000
4  1991       28.4  8185000
5  1992       27.9  8213000
6  1993       28.4  8518000
7  1994       28.3  8991000
8  1995       28.6  8620000
9  1996       28.5  8479000
10 1997       28.7  8217000
11 1998       28.8  8085000
12 1999       28.3  8638000
13 2000       28.5  8778000
14 2001       28.8  8352000
15 2002       29.0  8042000
16 2003       29.5  7556000
17 2004       29.5  7483000
18 2005       30.3  7660000
19 2006       30.1  7762000
20 2007       31.2  7562000
21 2008       31.5  6769000
22 2009       32.9  5402000
23 2010       33.9  5636000
24 2011       33.1  6093000
25 2012       35.3  7245000
26 2013       36.4  7586000
27 2014       36.5  7708000
28 2015       37.2  7517000
29 2016       37.7  6873000
30 2017       39.4  6081000
> typeof(csv)
[1] "list"
    

导入 JSON 数据

JSON 是另一种流行的数据共享格式。它允许分层数据类型,但比 CSV 更冗长。

要导入 JSON,请在工作目录中创建data.json文件:

      
    {"year": 1980
    

R 中没有内置解析 JSON 的方法。但是,你可以安装jsonlite,这是一个用于在 R 数据类型和 JSON 之间进行转换的流行库。

下面的代码演示了如何安装此包并使用它将 JSON 文件导入到您的 R 环境中。

      install.packages('jsonlite')

json <- jsonlite$fromJSON('data.json')
json
    

由于输入数据相同,因此输出将与 CSV 样本相同。

导入 XML 数据

另一种常见的数据格式是 XML。这种格式可能更冗长,因此文件大小更大。但是,如果您使用的是旧系统,它们可能会输出 XML,而您无法更改它。

创建以下 xml 文件data.xml

      <?xml version="1.0" encoding="UTF-8"?>
<root>
   <element>
      <efficiency>24.3</efficiency>
      <sales>8949000</sales>
      <year>1980</year>
   </element>
   <element>
      <efficiency>27.6</efficiency>
      <sales>10979000</sales>
      <year>1985</year>
   </element>
   <element>
      <efficiency>28</efficiency>
      <sales>9303000</sales>
      <year>1990</year>
   </element>
   <element>
      <efficiency>28.4</efficiency>
      <sales>8185000</sales>
      <year>1991</year>
   </element>
   <element>
      <efficiency>27.9</efficiency>
      <sales>8213000</sales>
      <year>1992</year>
   </element>
   <element>
      <efficiency>28.4</efficiency>
      <sales>8518000</sales>
      <year>1993</year>
   </element>
   <element>
      <efficiency>28.3</efficiency>
      <sales>8991000</sales>
      <year>1994</year>
   </element>
   <element>
      <efficiency>28.6</efficiency>
      <sales>8620000</sales>
      <year>1995</year>
   </element>
   <element>
      <efficiency>28.5</efficiency>
      <sales>8479000</sales>
      <year>1996</year>
   </element>
   <element>
      <efficiency>28.7</efficiency>
      <sales>8217000</sales>
      <year>1997</year>
   </element>
   <element>
      <efficiency>28.8</efficiency>
      <sales>8085000</sales>
      <year>1998</year>
   </element>
   <element>
      <efficiency>28.3</efficiency>
      <sales>8638000</sales>
      <year>1999</year>
   </element>
   <element>
      <efficiency>28.5</efficiency>
      <sales>8778000</sales>
      <year>2000</year>
   </element>
   <element>
      <efficiency>28.8</efficiency>
      <sales>8352000</sales>
      <year>2001</year>
   </element>
   <element>
      <efficiency>29</efficiency>
      <sales>8042000</sales>
      <year>2002</year>
   </element>
   <element>
      <efficiency>29.5</efficiency>
      <sales>7556000</sales>
      <year>2003</year>
   </element>
   <element>
      <efficiency>29.5</efficiency>
      <sales>7483000</sales>
      <year>2004</year>
   </element>
   <element>
      <efficiency>30.3</efficiency>
      <sales>7660000</sales>
      <year>2005</year>
   </element>
   <element>
      <efficiency>30.1</efficiency>
      <sales>7762000</sales>
      <year>2006</year>
   </element>
   <element>
      <efficiency>31.2</efficiency>
      <sales>7562000</sales>
      <year>2007</year>
   </element>
   <element>
      <efficiency>31.5</efficiency>
      <sales>6769000</sales>
      <year>2008</year>
   </element>
   <element>
      <efficiency>32.9</efficiency>
      <sales>5402000</sales>
      <year>2009</year>
   </element>
   <element>
      <efficiency>33.9</efficiency>
      <sales>5636000</sales>
      <year>2010</year>
   </element>
   <element>
      <efficiency>33.1</efficiency>
      <sales>6093000</sales>
      <year>2011</year>
   </element>
   <element>
      <efficiency>35.3</efficiency>
      <sales>7245000</sales>
      <year>2012</year>
   </element>
   <element>
      <efficiency>36.4</efficiency>
      <sales>7586000</sales>
      <year>2013</year>
   </element>
   <element>
      <efficiency>36.5</efficiency>
      <sales>7708000</sales>
      <year>2014</year>
   </element>
   <element>
      <efficiency>37.2</efficiency>
      <sales>7517000</sales>
      <year>2015</year>
   </element>
   <element>
      <efficiency>37.7</efficiency>
      <sales>6873000</sales>
      <year>2016</year>
   </element>
   <element>
      <efficiency>39.4</efficiency>
      <sales>6081000</sales>
      <year>2017</year>
   </element>
</root>
    

有几种不同的方法可以使用 XML。XML是内置的,但某些版本的 R 存在内存泄漏。此外,使用此包会导致代码非常冗长。

一个更简单的解决方案是使用XML2,它更侧重于从 XML 文档中提取值。

下面的代码演示了如何使用 XML2 包将 XML 值提取到我们可以在 R 中分析的数据结构中。

      install.packages('xml2')

parse_xml <- function (file) {
  doc <- xml2::read_xml(file)
  efficiency <- xml2::xml_double(xml2::xml_find_all(doc, "//root/element/efficiency"))
  sales <- xml2::xml_double(xml2::xml_find_all(doc, "//root/element/sales"))
  year <- xml2::xml_double(xml2::xml_find_all(doc, "//root/element/year"))
  cbind(efficiency, sales, year)
}

data <- parse_xml('data.xml')
data
    

上面的代码片段创建了一个函数来提取销售额、效率和年份列。然后使用cbind将所有这些列组合在一起,生成一个表。此代码使用 xpath 查询来搜索给定的值。如果您的 XML 文档很复杂,则可能需要反复试验才能查询所需的值。因此,XML 数据格式通常不是共享数据的首选方式。

此解析逻辑封装在parse_xml函数中。这也有助于保持全局环境中没有临时变量。

结论

数据分析师需要熟练地导入不同的数据格式,才能有效地开展数据建模和分析项目。本指南向您展示了如何导入三种常见格式:XML、JSON 和 CSV。要进一步掌握这些技能,您可以观看有关在 R 中查询和转换数据类型的课程。

以上内容来自杭州电子商务研究院推送
关注
关于我们
热门推荐
合作伙伴
免责声明:本站部分资讯来源于网络,如有侵权请及时联系客服,我们将尽快处理
Copyright © 2025-2027 ToB产业网址导航 公安备案 浙公网安备33010602013138号 浙ICP备16025413号-9
支持 反馈 关注 数据