R语言(实用数据分析和可视化技术)学习笔记1

想说的话

最近因为毕设的缘故所以想要认真地学习一下R语言,为什么要选择R语言呢,我觉得R语言作为一款开源的数据分析统计工具相比较matlab等软件在国内可能用途更多一些,特别是当matlab等软件被卡脖子之后会R语言自身的竞争力会大一些。

然后我在图书馆借了本R语言的书:R语言 实用数据分析和可视化技术(原书第2版),是机械工业出版社出版的,美Jared P.Lander著,曾益强翻译的。我觉得海星。

因为是借的书所以想做下电子笔记,我希望笔记的风格是比较精简的,具体一些帮助理解的例子我也会摘过来,有些地方也会有自己的思考。

最后,我也是r语言的小白,笔记中有不严谨的地方欢迎指出,欢迎讨论,希望可以和大家一起学习,一起进步!

学习笔记1—R语言基础

1.1 数据类型

数据的主要类型:数值型(numeric)、字符型(character)、日期型(Data)、逻辑型(logical)

变量的数据类型可用class函数查看:class(x)

1.1.1 数值型数据

数值型:numeric
整数型:integer

注意:整数型在赋予变量时,要在整数后边加上L,例:i<-5L

判断是否是数值型用函数:is.numeric(x)
判断是否是整数型用函数:is.integer(x)

注意:整数型数据也是数值型一种,再进行计算的时候,R语言会自动将整数型数据转变为数值型数据

1.1.2 字符型数据

字符型(character)
因子(factor)

例:x<-"data"

要想得到字符(或数值)的长度,使用nchar函数

例:
nchar("hello")
5

1.1.3 日期型数据

最有用的是Date和POSIXct。

Date仅存储日期,实际代表自1970年1月1日以来的天数
POSIXct存储日期与时间,实际代表自1970年1月1日以来的秒数

用法:

>date1 <- as.Date("2012-06-28")
>date1
[1] "2012-06-28"
>as.numeric(date1)
[1] 15519
>date2 <- as.POSIXct("2021-06-28 17:42")
>date2
[1] "2021-06-28 17:42:00 EDT"
>as.numeric(date2)
[1] 1340919720

注意:使用as.numeric或as.Date函数不仅仅改变了对象的格式,也改变了其数据类型

1.1.4 逻辑型数据

真(TRUE)等同于1,假(FALSE)等同于0

判断是否是逻辑型用函数:is.logical(x)

逻辑值可以由数值或是字符之间的比较所产生
例:

>2==3
[1]FALSE
>2!=3
[1]TRUE

1.2 向量

向量是一些元素的集合,所有元素都具有相同的数据类型,向量不能包含不同类型的数据。
向量没有维度,不像数学中的向量有行和列的区别。

最常用的创建向量的方式是用c函数(combine),可以将许多元素合并为一个向量。
例:

>x <- c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

1.2.1 向量操作

将上例x中每个元素乘以3(加法减法乘法除法同样适用)

>x*3
[1] 3 6 9 12 15 18 21 24 27 30

运算符(:)可以在任何方向产生连续的数字

>1:10
[1] 1 2 3 4 5 6 7 8 9 10
>5:-7
[1] 5 4 3 2 1 0 -1 -2 -3 -4 -5 -6 -7

假设有两个等长度的向量,每个相应的元素可以一起操作(加减乘除幂)

>x <- 1:10
>y <- -5:4
>x + y
[1] -4 -2 0 2 4 6 8 10 12 14

当处理两个不等长的向量时,较短的向量会循环补齐,如果长向量的长度不是短向量长度的整数倍时会给出警告

>x + c(1, 2)
[1] 2 4 4 6 6 8 8 10 10 12

向量也可以进行比较,得到的结果是长度与原向量相同的向量,其每个元素都是TRUE或FALSE

>x <= 5
[1] TRUE TRUE TRUE TRUE TRUE FALSE FALSE FALSE FALSE FALSE

可以用all函数检查是否所有的元素都是TRUE,any函数可以检查所有元素中是否存在TRUE

>x <- 10:1
>y <- -4:5
>any(x < y)
[1] TRUE
>all(x < y)
[1] FALSE

nchar函数可以用于向量的每一个元素

>nchar(y)
[1] 2 2 2 2 1 1 1 1 1 1

访问向量的单个元素可以使用方括号[ ]。
获取x中的第一个元素:x[1]
获取x中的前两个元素:x[1:2]
获取x中非连续的元素:x[c(1, 4)]

>x[1]
[1] 10
>x[1:2]
[1] 10 9
>x[c(1, 4)]
[1] 10 7

在向量创建过程中或是创建之后都可以给向量命名

>c(One="a", Two="y", Last="r")
  One  Two  Last
    "a"   "y"   "r"
>w <- 1:3
>names(w) <- c("a", "b", "c")
>w
a  b  c
1  2  3

1.2.2 factor向量

factor是R语言中一个重要的概念,尤其是建立模型的时候要建立一个含有少量重复文本数据的向量。

这一段有点难理解,所以图片:
在这里插入图片描述

在这里插入图片描述

1.3 函数文档

R所提供的的函数都含有附带文档,查看方式是在函数名称前加上问号,如?mean

查看二元运算符(像+、*或==)的帮助文档时,在其前加上反引号(’),如:

>? '+'
>? '*'

如果函数记不清了,可用apropos函数来查找函数,如:

>apropos("mea")

后边会给出所有带mea的函数

1.4 缺失数据

两种缺失型数据类型:NA和NULL,虽然类似,表现不同

1.4.1 NA

R语言中使用NA来代替缺失数据。
NA经常作为向量中的一种元素出现。
is.na用来检查向量中的每个元素是否是缺失值。
例:

>z <- c(1, 2, NA, 8, 3, NA, 3)
>is.na(z)
[1] FALSE FALSE TRUE FALSE FALSE TRUE FALSE

如果计算z的平均值,则结果为NA。

>mean(z)
>NA

当na.rm为TRUE时,mean函数会剔除掉缺失数据,然后计算剩余数据的平均值。

>mean(z, na.rm=TRUE)
[1] 3.4

如何填补缺失值后边介绍

1.4.2 NULL

NULL是没有任何东西,空白。
区别:NULL是原子性的,不能存在于向量中,如果在向量中使用,自然就消失了。

>z <- c(1, NULL, 3)
>z
[1] 1 3

NULL的检测函数为is.null

1.5 管道

管道符是一种新的调用函数的形式。
在magrittr包中实现。
调用函数时在管道符左边输入值或对象(作函数第一个参数),右边输入函数名。
例1:

>library(magrittr)
>x <- 1:10
>mean(x)
[1] 5.5
>x  %>%  mean
[1] 5.5

例2:

>z <- c(1, 2, NA, 8, 3, NA, 3)
>sum(is.na(z))
[1] 2
>z  %>%  is.na  %>%  sum
[1] 2

管道调用函数读起来自然,从左到右代码更容易理解。

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值