R语言第一周学习
- R语言与其他语言不同的地方
- 常用命令
- 变量
- TRUE和FALSE.
- 日期和时间
- NA和NULL
- 查看数据类型
- 创建向量
- 访问向量
- 获得向量长度
- 扩展向量
- which()检索
- subset()检索
- match函数
- sort()升序降序
- 翻转向量rev()
- 等差序列
- 重复序列
- 判断向量相等 ==
- 判断向量是否完全相同 identical()
- 判断某个值是否包含在指定向量中 %in%
- 集合运算
R语言与其他语言不同的地方:
1、输出语句使用:print这个和python相似;
2、语句结尾不需要;,这个也和python相似
3、向量的数数是从1开始的,这个可能也是和语言适用的范围决定的,大量用于统计批量计算,从1开始比较方便吧。
3、#表示单行注释
4、ctrl + L 清空当前命令行窗口
5、TAB自动补全
常用命令
输出语句:print()
example(函数名)可以获得示例代码。
source(“C:\Users\cuihua\Documents\1-1.R”)调用已经写好的R脚本
install.packages(“包名”)安装包
upgrade.packages(“包名”)更新包
library(“包名”)加载包
getwd()查看当前工作路径
setwd(“路径名”)改变工作目录
变量
R中的变量由**字母、数字、下划线(_)、实心句点(.)**组成,但不允许变量名中出现连字符(-),并且变量名必须以字母或实心句点开始。变量名以实心句点开始时,紧随其后的字符不能是数字。
TRUE和FALSE
TRUE和FALSE是R语言的保留字,而T和F是全局变量,但这两个变量是可以被重新赋值的。
日期和时间
as.Date():将字符串转换为日期型,example:
as.Date(“2019/08/14”,"%m/%d/%Y")
as.POSIXlt,可以将字符串形式的日期时间值转换为时间变量。
as.POSIXlt("2021-01-08 19:33:30",tz="","%Y-%m-%d %H:%M:%S")
[1] "2021-01-08 19:33:30 CST"
“2019-08-14 09:35:40”,包含日期和时间,日期和时间以空格分隔;
tz="",代表时区的设置,""代表默认时区,这里默认为CST,即中国标准时间。
"%Y-%m-%d %H:%M:%S"为日期时间格式,日期和时间同样用空格分割,时间%H代表时,%M(注意大写)代表分,%S代表秒。
NA和NULL
NA(Not available),表示无数据值。
is.na(变量)可以检测某个变量是否为NA。
NULL表示变量未初始化。
is.null(变量)可以检测某个变量是否初始化了。
查看数据类型
mode()函数只查看数据的大类,class()函数查看数据的类,typeof()函数则更加细化,三者都可以查看数据的类,根据不同需求使用不同函数。
创建向量
向量中的各元素类型是相同的,如果在用c()创建函数时,给定的参数的元素类型不同,那么在生成向量前,自动转换为相同的数据类型。
想给向量中的数据命名:
>x <- c(80,90,70)
>names(x) <- c("语文","数学","英语")
>x
语文 数学 英语
80 90 70
访问向量
索引方式访问:
如果索引(或下标)为负数,则返回该位置以外的所有元素。
一次访问多个元素
按名称访问元素
也可以使用names()函数访问某个位置上的元素的名称
获得向量长度
- length(x)
- NROW()
扩展向量
通过c(x,c(4,5,6))将向量x和(4,5,6)合并为一个向量,实现了向量的扩充。
which()检索元素在向量中的位置
> x<-c(90,70,80,75,65,50,75)
> which(x==70)
[1] 2
> which(x==75)
[1] 4 7
获得最大值或最小值元素所在位置:
> x<-c(90,70,80,75,65,50,75)
> which.max(x)
[1] 1
> which.min(x)
[1] 6
使用subset()函数来检索
> x<-c(90,70,80,75,65,50,75)
> subset(x, x>60 & x<80)
[1] 70 75 65 75
match函数
使用match函数,可以判断向量中各元素是否与另外一个向量中的元素相等。
> x<-c(90,70,80,75,65,50,75)
> match(x,70)
[1] NA 1 NA NA NA NA NA
> match(x,c(70,75))
[1] NA 1 NA 2 NA NA 2
sort()升序降序
sort()函数对向量x中的元素按照升序排序。
> x<-c(9,7,10,6,8,5,12)
> sort(x)
[1] 5 6 7 8 9 10 12
如果要按照降序排序,我们可以在sort函数中,增加一个参数decreasing=TRUE(默认为FALSE)
> sort(x,decreasing=TRUE)
[1] 12 10 9 8 7 6 5
默认是没有省缺值的,如果我们在sort函数中增加一个参数na.last=TRUE(默认值为FALSE),这个缺省值会排列到序列的最末尾。
> x<-c(9,7,10,6,8,NA,5,12)
> sort(x)
[1] 5 6 7 8 9 10 12
> sort(x,na.last=TRUE)
[1] 5 6 7 8 9 10 12 NA
翻转向量rev()
rev()函数的作用是将向量翻转。
> rev(x)
[1] 12 5 NA 8 6 10 7 9
等差序列
指定起始和结束值
> seq(1,10)
[1] 1 2 3 4 5 6 7 8 9 10
指定步长
> seq(1,10,by=2)
[1] 1 3 5 7 9
指定元素个数
> seq(1,10,length.out=5)
[1] 1.00 3.25 5.50 7.75 10.00
seq()函数的常用参数
前面的示例中,我们省略了from或to,
> seq(from=1,to=10,length.out=5)
[1] 1.00 3.25 5.50 7.75 10.00
重复序列
如果要将某一个向量重复多次,可以使用rep()函数。
> x<-c(1,2)
> rep(x,5)
[1] 1 2 1 2 1 2 1 2 1 2
我们让向量的每个元素分别重复多次,我们可以使用each参数
> rep(x,each=5)
[1] 1 1 1 1 1 2 2 2 2 2
times重复次数
> rep(x,times=2,each=5)
[1] 1 1 1 1 1 2 2 2 2 2 1 1 1 1 1 2 2 2 2 2
rep()函数的常用参数有
判断向量相等 ==
> c(80,90,60) == c(80,70,60)
[1] TRUE FALSE TRUE
判断向量是否完全相同 identical()
>identical(c(80,90,60),c(80,90,60))
[1] TRUE
>identical(c(80,90,60),c(80,70,60))
[1] FALSE
判断某个值是否包含在指定向量中 %in%
集合运算
(1)求并集union()
(2)求交集intersect()
(3)求差集 setdiff()
列表
创建列表
>x<-list (name="王一",age=23)
>x
$name
[1] "王一"
$age
[1] 23
从上面代码,可以看到列表中有两项内容,name和age,name的值为“王一”,age的值为23,其中name和age我们称之为“键”,“王一”和23称之为值,即键name的值为“王一”,键age的值为23。
列表内容访问
方式一:采用索引方式(下标方式),如:
方式二:采用键名访问键值,如: