R语言学习之输入的输入与调用(1)

标量

数据输入

标量/常量赋值的方法:

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

长河

在曾经的博客时代,是“首个桥隧工程领域独立博主”,目前是一名默默耕耘的普通高校教师。一家之言,仅供参考,未必成熟、绝不权威。

相关推荐

R语言的一些注意事项

1.“.”句点没有特殊意义,用美元符号“$”来在通常情况下代替“.”; 2.没有多行注释功能,必须每行以“#”开头进行注释; 3. ...

暂无评论

发表评论

您的电子邮件地址不会被公开,必填项已用*标注。