摸鱼的小贤在瞎搞R - R语言内置数据集的使用

系列文章目录

1-R语言的安装及使用(还没写这个,太简单了不太想写)
2-R语言内置数据集的使用
……
文章都会尽量详细,话多请见谅(我是话痨



系统:Windows 10 R语言版本:4.2.1 IDE:RStudio

参考:如何使用R语言中的内置数据集?-青盐

1. 查看包中有哪些数据集

简单来说就是使用data()函数来“Loads specified data sets, or list the available data sets.”。
在说明data函数的功能之前,首先要简单了解一下R语言的数据集(data sets)和包(packages)是怎么会事儿。从文件结构来看,数据集是包的上级目录,比如以datasets包为例,data(这相当于数据集)是datasets(这相当于包)文件夹下的一个独立文件夹,data文件夹中则有着相关的存储这些数据的数据库文件(.rdb看起来是一个数据库类型的文件后缀)。这里可能有点乱,反正就是R语言程序所在的文件中,library文件夹下的下级独立文件夹每个都是package(包括datasets),而点进去某一个package如果有data这个文件,那这一个package也就有其指定的数据集(specified data sets);所有这些有data这个文件的package,他们的数据集的总和便是可用的数据集(available data sets)。
package和data sets的关系
下面具体敲代码来看一下是怎么回事儿吧!
查看特定package(e.g. datasets, ggplot2)中所有数据集,以及如果查看不存在数据集的package(e.g. car)的结果。

> data(package="datasets")

data(package="datasets")

> data(package="ggplot2")

data(package="ggplot2")

> data(package="car")
no data sets found

查看可用的所有数据集(这是翻译自data函数的帮助文档的原话,但是我觉得有点指代不清,其所指的应该是当前运行环境下可用的所有数据集,即如果某一个包没有导入的话,那么这个包便不在当前的运行环境下)。

> data()

如果此时你的运行环境中没有导入任何包,结果同data(package=“datasets”),我认为这是因为R语言默认一定访问datasets包里的数据集(类似于一个default),但是如果先导入了一个包(e.g. ggplot2),在输出的结果中便会同时包含datasets和ggplot2的数据集。

> library(ggplot2)
> data()

导入ggplot2后的data()输出
查看所有可用的包(packages)中的数据集。

> data(package=.packages(all.available=TRUE))

查看所有可用的包(packages)中的数据集

2. 查看某一特定数据集的基本信息

使用help()函数来查看某一特定数据集(e.g. BOD)的基本信息。

> help("BOD")

BOD数据集的基本信息述
需要注意的是如果没有导入包含某一特定数据集的包(e.g. ggplot2包的diamonds数据集),那么并不会输出该数据集的信息。

> help("diamonds")
在指定的程序包和图书馆里没有与‘diamonds’有关的说明书

需要先导入包含该数据集的包在进行查看(这里应该挺好理解的)。

> library(ggplot2)
> help("diamonds")

导入ggplot2后查看diamonds信息的结果
除了help()函数以外,还可通过str()和summary()等函数获取某一数据集的不同维度的信息。str()函数能简洁地显示数据集的内部结构(其也可以显示其它变量的内部结构,只需要是R对象即可);summary()函数则能够显示出数据集中各变量的一些基础统计量。

> str(BOD)
'data.frame':	6 obs. of  2 variables:
 $ Time  : num  1 2 3 4 5 7
 $ demand: num  8.3 10.3 19 16 15.6 19.8
 - attr(*, "reference")= chr "A1.4, p. 270"
> summary(BOD)
      Time           demand     
 Min.   :1.000   Min.   : 8.30  
 1st Qu.:2.250   1st Qu.:11.62  
 Median :3.500   Median :15.80  
 Mean   :3.667   Mean   :14.83  
 3rd Qu.:4.750   3rd Qu.:18.25  
 Max.   :7.000   Max.   :19.80

3. 调用内置数据集

通常直接输入你想要用的数据集的名称作为变量即可返回该数据集对应的数据帧,并且像正常的数据帧一样进行操作即可。而如果你想用的数据集是某一个包里的,那同样需要先导入那个包才可以调用你想要的数据集。

> BOD
  Time demand
1    1    8.3
2    2   10.3
3    3   19.0
4    4   16.0
5    5   15.6
6    7   19.8
> BOD$Time
[1] 1 2 3 4 5 7
> diamonds
Error: object 'diamonds' not found
> library(ggplot2)
> diamonds
# A tibble: 53,940 × 10
   carat cut       color clarity depth table price     x     y     z
   <dbl> <ord>     <ord> <ord>   <dbl> <dbl> <int> <dbl> <dbl> <dbl>
 1  0.23 Ideal     E     SI2      61.5    55   326  3.95  3.98  2.43
 2  0.21 Premium   E     SI1      59.8    61   326  3.89  3.84  2.31
 3  0.23 Good      E     VS1      56.9    65   327  4.05  4.07  2.31
 4  0.29 Premium   I     VS2      62.4    58   334  4.2   4.23  2.63
 5  0.31 Good      J     SI2      63.3    58   335  4.34  4.35  2.75
 6  0.24 Very Good J     VVS2     62.8    57   336  3.94  3.96  2.48
 7  0.24 Very Good I     VVS1     62.3    57   336  3.95  3.98  2.47
 8  0.26 Very Good H     SI1      61.9    55   337  4.07  4.11  2.53
 9  0.22 Fair      E     VS2      65.1    61   337  3.87  3.78  2.49
10  0.23 Very Good H     VS1      59.4    61   338  4     4.05  2.39
# … with 53,930 more rows

似乎也会有一些特殊情况,必须先载入数据集才可调用数据集同名参数(为啥我也不知道QAQ)

> library(vegan)
> BCI
Error: object 'BCI' not found
> data("BCI")
> BCI
  Abarema.macradenia Vachellia.melanoceras Acalypha.diversifolia
1                  0                     0                     0
2                  0                     0                     0
3                  0                     0                     0
4                  0                     0                     0

写在最后
本菜鸟一边搞生物学研究一边学习计算机一边记录学习过程,文章错误之处还望大佬不吝赐教,谢谢!
我的系列文章都是想到啥写啥,不过尽量会安排得符合逻辑一点,喜欢我的内容的读者可以私信给我你想看的内容,我能力所及可以考虑写一下,谢谢支持!

  • 9
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值