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 9data <- 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
今天的学习就到这了,欢迎小伙伴交流学习!