R语言绘图学习笔记<一>R编程与绘图基础

R语言绘图学习笔记<一>R编程与绘图基础

学术图表

学术图表

R语言编程基础

数据类型:

R 语言最常用到的4 种数据类型为数值型(numeric)、字符型(character)、日期型(date)和逻辑型(logical)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
> a<-1 #数值型
> is.numeric(a)#is函数,判断数据类型是否为数值
[1] TRUE
> b<-"peter" #字符型
> nchar(b) #输出字符串长度
[1] 5
> c<-as.Date("2012-06-12")#日期型最常用的日期型数据类型是Date(仅存储日期)和POSIXct(同时存储日期与时间)as.Date()函数将读入的数值转化为日期
> class(c)#class()判断变量类型
[1] "Date"
> d<-as.POSIXct("2012-06-12 17:32");class(d)
[1] "POSIXct" "POSIXt"
> e<-TRUE; f<-FALSE#逻辑型 布尔值
#提取日期型数据的年、月、周等数据信息,使用as.numeric()函数或者as.integer()函数将日期型数据转换成数值型
> c_Year<- as.integer(strftime(c, '%Y'))
> c_month <- as.integer(strftime(c, '%m'))
> c_week<- as.integer(strftime(c, '%W'))
> c
[1] "2012-06-12"
> c_Year<- as.integer(strftime(c, '%Y'))
> c_Year
[1] 2012
> c_week
[1] 24
数据结构

常见的数据结构包括:向量(vector)、数据框(data.frame)、矩阵(matrix)、列表(list)和数组(array)。其中,矩阵是将数据用行和列排列的长方形表格,它是二维数组,其单元必须是相同的数据类型,通常用列来表示不同的变量,用行表示各个对象;数组可以看作是带有多个下标的类型相同的元素的集合;列表是一个对象的有序集合构成的对象,列表中包含的对象又称为它的分量(component),分量可以是不同的模式或(和)类型。我们在本书的数据可视化中,比较常用的是向量(因子属于特殊的向量)和数据框。

向量

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#向量的创建与处理
> c(2,3,4,5,6)#手动输入
[1] 2 3 4 5 6
> 2:6#等差整数数列
[1] 2 3 4 5 6
> seq(2,5,by=0.5)#步长为0.5 的等差数列
[1] 2.0 2.5 3.0 3.5 4.0 4.5 5.0
> rep(1:2,times=3)#将一个向量重复3 次
[1] 1 2 1 2 1 2
> rep(1:3,times=3)
[1] 1 2 3 1 2 3 1 2 3
> rep(1:3,each=3)#将一个向量中的每个元素重复3 次
[1] 1 1 1 2 2 2 3 3 3
> rnorm(3, mean = 0, sd = 3)#均值为0、标准差为3 的正态分布,这里的数值是随机的
[1] 3.428378642 0.006760451 -1.187568502
> rnorm(3, mean = 0, sd = 3)
[1] -5.085684 -1.182428 -1.365368
> runif(3,min=0,max=1)#最大值为1、最小值为0 的均匀分布
[1] 0.2066979 0.1808297 0.1981151
> sample(c('A','B','C'),4,replace = TRUE)#从一个向量中随机抽取
[1] "B" "A" "C" "A"

> Cut<-c("Fair","Good","Very Good","Premium","Ideal")#因子的建立
> Cut_Facor1<-as.factor(Cut)
> Cut_Facor1
[1] Fair Good Very Good Premium Ideal
Levels: Fair Good Ideal Premium Very Good
> Cut_Facor2<-factor(x=c("Fair","Good","Very Good","Premium","Ideal"),
+ levels= c("Good","Fair","Very Good","Ideal","Premium"),
+ ordered=TRUE)#因子的levels变化
> Cut_Facor2
[1] Fair Good Very Good Premium Ideal
5 Levels: Good < Fair < Very Good < ... < Premium
#因子类型转换
> NumFacor<-factor(x=c(1,3,5,2), levels= c(5,3,2,1), ordered=TRUE)
> NumVector1<-as.numeric(as.character(NumFacor)) # 输出:1 3 5 2
> Num_Vector2<-as.numeric(NumFacor) # 输出:4 2 1 3
#数据框
> df<-data.frame(x=c("a","b","c"), y=1:3,z=c(2,4,6))
> df
x y z
1 a 1 2
2 b 2 4
3 c 3 6
> df[2,]
x y z
2 b 2 4
> df[,3]
[1] 2 4 6
> df[2,3]
[1] 4
> df[1:3,]
x y z
1 a 1 2
2 b 2 4
3 c 3 6
> df["1","3"]
NULL
> df[c("1","3"),]
x y z
1 a 1 2
3 c 3 6
> nrow(df)
[1] 3
> ncol(df)
[1] 3
> dim(df)
[1] 3 3
> names(df[.3])
character(0)
> rownames(df[3.])
[1] "1" "2" "3"

数据结构

数据属性

数据属性

数据导入与导出

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#CSV
mydata<-read.csv("Data.csv",sep=",",na.strings="NA",stringsAsFactors=FALSE)#导入时禁止将字符型变量转换为因子
write.csv(mydata,file = "File.csv")#导出为csv

#txt
mydata<-read.table("Data.txt",header = TRUE)
write.table(mydata, file = "File.txt")

#excel
mydata<- read.xlsx("Data.xlsx", sheetIndex=1)
write.xlsx(mydata, "Data.xlsx", sheetName="Sheet Name")

#NA和NULL
NA 数值缺失
NULL 没有数值

控制语句与函数编写

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
i<-6
if(i>3){
print("yes")
}else{
print("no")
}
for (i in 3:10) {
j<-i*i
if(j>20){
print(j)
}else{
print(i)
}
}
i<-1
while(i<6){
print(i)
i<-i+1
}
s<-function(x,y,z){
s1=(x*x+y)/z
s2=x*y*z
if(s1>s2){
return(s1)
}else{
return(s2)
}
}
print(s(5,3,2))

控制语句

  • © 2020-2021 Tan Zheng