列表可以包含多种类型,如数字/字符/向量/data.frame/list
# 创建含一个向量元素的list list1 = list(c(1,2,3)) # list2有三个元素 list2 = list(df2, 1:10, list1) # 起名字。默认是NULL的。 names(list2) = c("data.frame", "vector", "list") # 或者在创建时即给出名字。类似前面data.frame起名字的操作。 # 此处名字不用加引号 list3 = list(data.frame = df2, vector = 1:10, list = list1) # 四个元素的空list emptyList = vector(mode = "list", length = 4) # 注意,访问单个元素使用[[ ]] list[[1]] # 访问单个元素里的单个位置 list[["data.frame"]]$haha list[["data.frame"]][1] # 虽然可以直接追加元素,如不存在的index或name,但不适合大数据量 list3[[4]] = 3:6
矩阵:
所有元素都是相同的类型。
A = matrix(1:10, nrow = 5) B = matrix(21:30, nrow = 5) C = matrix(21:40, nrow = 2) # count col # and row # ncol(A) nrow(A) dim(A)
# + - * ==都是针对元素的操作 A+B # 这个是矩阵乘法 # 乘法的结果,行名字是A的行名字,列名字是B的行名字(因为有转置) A %*% t(B) # 不起名字的话,默认是NULL colnames(A) = c("one","two","three","four","five") rownames(A) = c("left", "right")
数组:
与矩阵不同之处在于,矩阵是二维的,数组可以是任意维数。
# 两个2*3的矩阵 arr = array(1:12, dim = c(2, 3, 2))