vlambda博客
学习文章列表

R语言—数据结构(上)

总感觉R语言的语法有点像HTML,每个标签有自己参数,对于R语言,每一个函数也有自己的参数。可以预见,R语言是一个复杂,很杂,入门简单,但是真正到精通是很困难的。

创建数据集

内容:R语言有哪些数据结构;输入数据;导入数据;标注数据
最开始,在我们学习R,我们应该选择一种数据结构来储存数据,然后将数据输入或导入到这个数据结构中,之后进行分析。

R有标量、向量、数组、数据框和列表。

标量是只含有一个元素的向量,例如f <-3.
向量是用于储存数值型、字符型、逻辑型数据的一组数组。用c()表示。
例如

a <- c(1,2,3,4,5)  
b <- c("one","two")  
c <- c(TRUE,FALSE,TRUE,FALSE)

a是数值型向量,b是字符型向量,c是逻辑型向量。

notice!单个向量中的数据必须是同一数据类型。

如何从向量中读取数据

a<-c("q","w","e","r","t")  #输入数据。定义一个逻辑型向量,并把向量赋值给a.
a[3]    #读取第3位。
[1] e
a[c(1,3)]   #读取第1位,第3位。
[1] "q" "e"
a[2:4]    #读取第2到第4位。
[1] "w" "e" "r"

矩阵

当然,就目前而言,我们的数据不仅仅是一维,很大一部分是一维以上。
矩阵是一个二维数组,
一般使用格式为:

mymatrix <- matrix(vector,nrow=number_of_rows,ncol=number_of_columns,byrow=logical_value,dimnames=list(char_vector_rownames,char_vector_colnames))

vector包含了矩阵的元素。rows和ncol用以指定行和列的维数,dimnames包含了可选的、以字符型向量表示的行名和列名。选项byrow则表明举证应当按行填充(byrow=TRUE)还是按列填充(byrow=FALSE).

现在创建矩阵

data <- matrix(1:20,nrow=5,ncol=4)#创建一个5*4的矩阵,并把矩阵赋值给data
data
        [,1] [,2] [,3] [,4]
[1,]    1    6   11   16
[2,]    2    7   12   17
[3,]    3    8   13   18
[4,]    4    9   14   19
[5,]    5   10   15   20
data[2,] #我们可以使用下标和方括号来选择矩阵中的行、列或元素。data[i,]指矩阵data中第i行。
[1]  2  7 12 17
data[,2] #data[,j]指矩阵data中第j列。
[1]  6  7  8  9 10
data[2,2] #data[i,j]表示第i行,j列元素。
[1] 7

理解按行填充,按列填充

cells <- c(1,5,8,9) #创建一个向量赋值给cells
rnames<- c("A","B") #创建一个字符型向量给rnames
cnames<- c("C","D") #创建一个字符型向量给cnames
data <- matrix(cells,nrow=2,ncol=2,byrow=TRUE,dimnames=list(rnames,cnames)) #创建一个2*2矩阵,byrow=TRUE 表示按列填充.
data   #1,5,8,9按照列填充
   C D
A 1 5
B 8 9

data <- matrix(cells,nrow=2,ncol=2,byrow=FALSE,dimnames=list(rnames,cnames)) #创建一个2*2矩阵,byrow=FALSE表示按列填充.
data  #1,5,8,9按照行填充
   C D
A 1 8
B 5 9


今天的学习就到这了,欢迎小伙伴交流学习!