此篇是网上CDSN上有龙小江的文章,我觉得能比较简单的理解,因此整理上传到此。

向量

包含一个元素或多个元素
(a=c("TRUE","FALSE","yes","no","120","啤酒"))
## [1] "TRUE"  "FALSE" "yes"   "no"    "120"   "啤酒"
class(a)
## [1] "character"

矩阵

由向量构成,是一个特殊的数组,即维数等于2的数组,
(b=matrix(a,ncol=2, nrow = 3))#如果一个函数我忘了后面的参数还有什么,可以逗号”,“一下,然后按”Tab“键就会出现参数。
##      [,1]    [,2]  
## [1,] "TRUE"  "no"  
## [2,] "FALSE" "120" 
## [3,] "yes"   "啤酒"
class(b)
## [1] "matrix"

数组

与只能有二维的矩阵不同的是,数组的维数不限,但元素的数据类型必须一致,即数值型都是数值型,字符串都是字符串
(c=array(a,dim=c(2,3,2)))
## , , 1
## 
##      [,1]    [,2]  [,3]  
## [1,] "TRUE"  "yes" "120" 
## [2,] "FALSE" "no"  "啤酒"
## 
## , , 2
## 
##      [,1]    [,2]  [,3]  
## [1,] "TRUE"  "yes" "120" 
## [2,] "FALSE" "no"  "啤酒"
class(c)
## [1] "array"

数据框

与数组不同的是,数据框里面的数据类型可以不一致,但向量维数必须相等,即各列数据长度相等
(d=data.frame(c))
##      X1  X2   X3    X4  X5   X6
## 1  TRUE yes  120  TRUE yes  120
## 2 FALSE  no 啤酒 FALSE  no 啤酒
class(d)
## [1] "data.frame"

列表

最宽泛的一个集合,它的数据类型可以不一致,长度也可以不一致,可以由向量,矩阵,数组,数据框,函数,甚至是列表组成
e=list(d)
e
## [[1]]
##      X1  X2   X3    X4  X5   X6
## 1  TRUE yes  120  TRUE yes  120
## 2 FALSE  no 啤酒 FALSE  no 啤酒
class(e)
## [1] "list"
f=list(a,b,c,d,e,round)
f
## [[1]]
## [1] "TRUE"  "FALSE" "yes"   "no"    "120"   "啤酒" 
## 
## [[2]]
##      [,1]    [,2]  
## [1,] "TRUE"  "no"  
## [2,] "FALSE" "120" 
## [3,] "yes"   "啤酒"
## 
## [[3]]
## , , 1
## 
##      [,1]    [,2]  [,3]  
## [1,] "TRUE"  "yes" "120" 
## [2,] "FALSE" "no"  "啤酒"
## 
## , , 2
## 
##      [,1]    [,2]  [,3]  
## [1,] "TRUE"  "yes" "120" 
## [2,] "FALSE" "no"  "啤酒"
## 
## 
## [[4]]
##      X1  X2   X3    X4  X5   X6
## 1  TRUE yes  120  TRUE yes  120
## 2 FALSE  no 啤酒 FALSE  no 啤酒
## 
## [[5]]
## [[5]][[1]]
##      X1  X2   X3    X4  X5   X6
## 1  TRUE yes  120  TRUE yes  120
## 2 FALSE  no 啤酒 FALSE  no 啤酒
## 
## 
## [[6]]
## function (x, digits = 0)  .Primitive("round")