R 编程中的数据导入


2022年5月16日, Learn eTutorial
1883

在本教程中,您将学习如何从各种来源(如 txt 文件、csv(逗号分隔值)文件)导入(读取)数据。数据科学家通常将数据存储在 Excel 电子表格中。在 R 编程语言中,有几个 R 包,如 XLConnect、xlsx、RExcel、gdata、RODBC 等,用于从 Excel 电子表格中访问数据。R 用户或程序员大多将电子表格(数据)保存为 CSV 格式/文件,以利用 R 的内置功能来操作数据。因此,通过本教程,您将学习如何从 R 语言中的 .csv 文件读取(导入)数据。

如何在 R 中导入数据?

我们需要数据来处理我们的需求,这些数据从电子表格或任何其他来源读取或导入到您的程序中进行数据分析。Microsoft Excel 电子表格是使用 CSV 文件(逗号分隔变量文件)将数据导入 R 的最常用方法之一。您可以通过复制文件并将其保存为 .csv 文件格式来将电子表格保存为 CSV 文件。让我们逐步了解电子表格如何转换为 .csv 文件类型并在 R 程序中工作。

  1. Microsoft Excel 电子表格显示了与房屋相关的面积和价格。例如,第一列是面积,它提供了如果面积为 2600,则房价将为 550000 的信息,依此类推,还有其他面积及其相关的房价。
    How to import data in R?
  2. 右键单击文件名。您可以找到选项“属性”。单击“属性”会打开一个显示文件类型详细信息的框。在这里您可以看到文件类型为 .xlsx (Microsoft Excel 工作表)。
    How to import data in R?
  3. 文件类型需要从 .xlsx 文件类型更改为 .csv 文件。为此,请复制相同的文件并将其保存为 .csv 扩展名。更改文件类型后。再次查看“属性”并查看文件类型。
    How to import data in R?
  4. 如果两个文件位于同一文件夹中,您可以在文件夹中查看具有两种文件类型(Microsoft Excel 逗号分隔值文件 (.csv) 和 Microsoft Excel 工作表 (.xlsx))的相同文件(3-1 home prices)。
    How to import data in R?

导入/读取 csv 文件

在将文件读取到 R 程序中之前,需要一些基本知识。它们如下所示

  1. 要导入/读取的文件必须位于当前工作目录中,R 程序才能访问/读取它。R 的当前工作目录可以使用 getwd() 函数检查。
  2. 如果我们的文件位于其他位置,可以通过将其设置为当前工作目录来从该位置访问或读取。setwd() 函数可以设置当前工作目录。
  3. 一旦文件在 R 的当前工作目录中可用,您就可以使用 read.csv() 函数读取该文件。
  4. read.csv() 读取表格格式的文件,并从中创建一个数据框作为输出。正如我们在数据框教程中讨论的那样,数据框是用于存储数据表的二维数组的数据类型。
How to import data in R?
根据以上几点,第一步是在 RStudio 中使用 getwd() 函数检查 R 的当前工作目录。在 R 控制台中输入 getwd(),它将返回当前工作目录为 "C:/Users/John/Documents"

getwd()
[1] "C:/Users/John/Documents"
 

假设您需要更改当前工作目录,因为您要读取的文件使用 setwd() 函数保存在其他目录中。在 RStudio 中可以通过以下步骤完成

  • 点击 RStudio 中的 Session
  • 点击设置工作目录
  • 点击选择目录

通过选择文件位置,您可以更改和设置当前工作目录。

使用 RStudio 界面导入数据

将数据集导入 R 程序最简单的方法之一是使用 RStudio 中的“导入数据集”选项。

How to import data in R?

要导入文本文件,请使用第一个选项,您可以在其中浏览并打开文本文件。

您可以从此处更改数据集的名称。此外,还可以根据用户需求更改其他选项,例如标题、行名等。

How to import data in R?

单击“导入”按钮将数据集加载到 R 程序中。您可以看到相同的数据集已加载到 Rscript 中。名为 3-1homeprices 的对象将在全局环境中创建。

How to import data in R?

注意:数据默认存储在数据框结构中。

如何使用 read.csv() 方法导入 .csv 文件?

R 程序允许使用内置方法 read.csv() 将 .csv 文件类型加载到工作区中,或者通过加载或导入外部包并将其存储为数据帧 (df)。read.csv() 方法包含在基本 R 中,支持将数据加载到 R 脚本并执行程序。

在下面的示例中,read.csv() 函数用于加载文件名为 3-1homeprices 的 .csv 文件类型数据。您可以指定完整的文件路径,例如“C:\\Users\\Desktop\\R\\R Pgms\\3-1homeprices.csv”,只要 .csv 文件与您的 R 脚本保存在同一文件夹中即可加载数据。

使用 read.csv() 方法导入 .csv 文件


######importing Data ######
####using read.csv() ######
df1=read.csv(file ="C:\\Users\\Desktop\\R\\R Pgms\\3-1homeprices.csv" )
print(df1)


当执行上述代码片段时,文件中存储的数据将显示为


print(df1)
  area  price
1 2600 550000
2 3000 565000
3 3200 610000
4 3600 680000
5 4000 725000

比较 R 控制台中显示的数据内容与电子表格数据,两者相似。因此,使用 read.csv() 函数,您可以轻松地将电子表格数据提取到 R 程序中。请看下面的截图。

How to import data in R?

在 RStudio 中,您可以通过单击“环境”(右侧面板)中的 df1 变量来查看数据,该变量在左侧面板中显示两个变量(面积和价格)的 5 个观察值。

How to import data in R?

在上面的示例中,我们一步提供了完整路径,将数据读取到名为 df1 的数据框中。这也可以通过在另一个步骤中提及路径,然后只在函数 read.csv() 内部调用路径来实现。其遵循的语法如下


read.csv(path, header = TRUE, sep = “,”)
 

参数:

  • path: 要导入的文件的路径
  • header: 默认值: TRUE。指示是否导入列标题。
  • sep = “,” : 每行中值的分隔符。

示例:指定路径并在 read.csv() 中调用

文件所在的路径“C:/Users/Desktop/R/R Pgms/3-1homeprices.csv”在一个单独的行中指定,并通过存储到名为 path 的变量中。当需要加载数据集时,只需调用存储路径的变量名称即可。在我们的示例中,变量 path 包含 .csv 位置的详细信息。


#path specifying
path = "C:/Users/Desktop/R/R Pgms/3-1homeprices.csv"

#loading data from .csv file
data = read.csv(path)

#Displays the data
print(data)

 

执行代码时,它会获取存储在 .csv 文件中的数据,如下所示


area  price
1 2600 550000
2 3000 565000
3 3200 610000
4 3600 680000
5 4000 725000

如果语法中将 header 设置为 FALSE,则列标题名称 area, prices 将不会显示。它将根据数据集中的列数默认表示为 V1, V2…等。


#path specifying
path = "C:/Users/Desktop/R/R Pgms/3-1homeprices.csv"


#loading data from .csv file with columns names are hidden
data = read.csv(path,header = FALSE)

#Displays the data
print(data)

 

输出将不指定列名


V1     V2
1 area  price
2 2600 550000
3 3000 565000
4 3200 610000
5 3600 680000

您将学习 R 中的两个包:readr 和 data.table。我们将从使用 setwd() 函数设置文件或数据所在的目录或位置开始。

请务必使用以下命令安装这些包


install.packages("readr")
#to load readr library

install.packages("data.table")
#to load data.table  library
 

该截图展示了工作目录设置、包安装以及使用 library() 函数导入库的方法,其中要导入的包的名称作为参数放在括号内。

readr 库由 Madley、Jim 和 Romain 共同创建。readr 包中的 read.csv() 函数带有一些默认参数,用于加载或导入数据。

How to import data in R?

通过给定路径读取所有数据,并将对象存储为数据。进一步使用了两个函数 head() 和 str(),其输出如下面截图所示。


data = read.csv(file ="C:\\Users\\Desktop\\R\\R Pgms\\3-1homeprices.csv")
head(data)
str(data)

How to import data in R?

如何将文本文件导入 R?

read.table() 函数用于将文本文件导入 R 程序


df2= read.table(file ="C:\\Users\\Desktop\\R\\R Pgms\\3-1homeprices1.txt")
print(df2)

 

输出是

How to import data in R?

您可以看到数据框中有多个列,列上方显示 V1, V2。您可以将 header 参数设置为 TRUE,以将列名设置为实际标题,而不是 V1, V2 等。


df2= read.table(file ="C:\\Users\\Desktop\\R\\R Pgms\\3-1homeprices1.txt",header = TRUE)
print(df2)
 

输出如下所示,其中 V1,V2 已被 area 和 price 标题取代。

How to import data in R?