标量
数据输入
标量/常量赋值的方法:
x <- 5 #相当于x=5,但是R语言里通常不用等号来赋值,同时还需要注意尖括号的方向,与这条赋值语句等价的还有 5 -> x
x <- "CH" #将字符串赋值给x;
x <- TRUE #将布尔值(true / false)赋值给x
数据调用
标量的调用很简单,只需要输入赋值的变量名即可
向量
数据输入
向量输入,需要一个函数:c(),括号中就是需要进行赋值的向量。与标量相似的是,向量里面一样会有
a <- c(1, 3, 5, 7, 9)
a <- c("CH", "US" , "EN")
a <- c("TRUE", "FALSE", "TRUE")
数据调用
调用也要用到C()函数,用法:
a[C(5)] #调用向量a中的第五个元素;
a[c(1,4)] #调用向量a中的第1和第4个元素;
a[c(2:5)] #调用向量a中的第2~5个元素
矩阵
数据输入
矩阵就是一个二维数组,输入格式为:
a <- matrix(元素,nrow=行数,ncol=列数,byrow=按行填充(true)还是按列填充(false,默认值),dimnames(行名称,列名称))
举个例子:
a <- c(1,8,6,9)
rname <- c("R1","R2")
cname <- c("C1","C2")
aa <- matrix(a,nrow=2,ncol=2,byrow=TRUE,dimnames=list(rname,cname))
C1 C2
R1 1 8
R2 6 9
注意,byrow=TRUE中,TRUE一定要大写。如果FALSE的话,矩阵会有不同哦
数据调用
aa[2,1] #调用矩阵中第2行,第1列的数据;
aa[1,] #调用矩阵中第1行的所有数据,形成行向量
aa[,2] #调用矩阵中第2列的所有数据,形成列向量
数组
数据输入
数组和矩阵比较类似,可以把矩阵视为二维数组,而数组则没有维度的限制,定义格式如下:
aa <- array(数组数据,各个维度的元素数量,各个维度名称标签列表(可选))
dim1 <- c("R1","R2")
dim2 <- c("C1","C2","C3")
dim3 <- c("D1","D2","D3")
aa <- array(1:18,c(2,3,3),dimnames=list(dim1,dim2,dim3))
aa
, , D1
C1 C2 C3
R1 1 3 5
R2 2 4 6
, , D2
C1 C2 C3
R1 7 9 11
R2 8 10 12
, , D3
C1 C2 C3
R1 13 15 17
R2 14 16 18
上面的这个例子,相当于用一行命令,定义了三个两行三列的矩阵。
数据调用
数据调用的方式与矩阵相同,如aa[1,2,3]为15
数据框
数据输入
数据框可以实现将数值、字符串等不同类型的数据组合到一个数据表中,格式为:
data <- data.frame(col1,col2,col3,...)
其中,每一个col,都是一个列向量
实例:
id <- c(1,2,3)
name <- c("Jack","Tom","Mark")
age <- c(22,30,27)
mydata <- data.frame(id,age,name)
mydata
id age name
1 1 22 Jack
2 2 30 Tom
3 3 27 Mark
在数据框中,每一列的数据模式必须统一。
数据调用
mydata[1:2] #调取数据框架的1~2列
id age
1 1 22
2 2 30
3 3 27
mydata[3]
name
1 Jack
2 Tom
3 Mark
mydata["age"]
age
1 22
2 30
3 27
mydata$age
[1] 22 30 27
因子
因子是R语言中的一个特殊变量。通常的变量可分为名义型(字符、类别等)、有序型(等级之类)和连续型(连续数字等),而因子就是名义型和有序型变量。
因子不是数值,不能用于计算,只能用来分类或者计数,统计学中还有一个“因子分析”。关于“因子”还有很多内容需要补充,这里先对因子最基本的操作进行介绍。
举例说明,比如一个向量为 aa <- c("A","B","C")
通过aa <- factor(aa)
则把此向量存储为(1,2,3),即用1=A,2=B,3=C,赋值顺序按照字母顺序而定
那么,对于有序变量,其特点是变量之间是有比较关系的,比如:
bb <- c("Low","Middle","High","Low")
bb <- factor(bb,ordered=TRUE) 进行编码之后的结果显示:
bb
[1] Low Middle High Low
Levels: High < Low < Middle
出现问题了吧,由于电脑并不够智能,按照字母进行排序和单词的逻辑排序不一致,因此呢,在赋值的时候可以用level参数来覆盖默认排序:
bb <- factor(bb,ordered=TRUE,levels=c("Low","Middle","High"))
结果就调整成了:
[1] Low Middle High Low
Levels: Low < Middle < High
如何查看因子是否已经定义成功了呢?用这个命令:str
str(bb)
Ord.factor w/ 3 levels "Low"<"Middle"<..: 1 2 3 1
而summary(bb)则显示了向量中各水平的出现频次
Low Middle High
2 1 1
列表
数据输入
列表的最大特点,是可以将各种数据,包括向量、矩阵、数据框、其他列表等进行组合。创建格式为:
mylist <- list(对象1,对象2,...),对象可以为任何的数据形式。
也可以定义对象名称:mylist <- list(name1=对象1,name2=对象2,...)
a <- 8
b <- "Five"
c <- c(4,6,8,2)
d <- matrix(1:10,nrow=2)
mylist <- list(number=a,Character=b,c,d)
mylist
$number
[1] 8
$Character
[1] "Five"
[[3]]
[1] 4 6 8 2
[[4]]
[,1] [,2] [,3] [,4] [,5]
[1,] 1 3 5 7 9
[2,] 2 4 6 8 10
暂无评论