以下为本章所用代码:
mat.1 <- matrix(c(1:6), nrow = 2, ncol = 3, byrow = T)
mat.2 <- matrix(c(1:4), nrow = 2, ncol = 2, byrow = T)
vec.1 <- c(1 : 5)
vec.2 <- c("a", "b", "c", "d", "e")
df.1 <- data.frame(col.1 = c(1:2), col.2 = c("a", "b"), col.3 = c(T, F))
li.1 <- list(com.1 = c(1:2),
com.2 = matrix(c(1:4), ncol = 2),
com.3 = data.frame(col1 = c(1:6)))
#以上为赋值
dim(mat.1)
dim(df.1)
length(vec.1)
dim(vec.1)
length(li.1)
dim(li.1)
vec.1[c(1, 5)]
mat.1[1, 3]
mat.1[2]
mat.1[2, ]
mat.1[, 2]
class(mat.1[1, 3])
df.1[1]
df.1[, 2]
df.1[2, ]
df.1[1,2]
class(df.1[, 2])
class(df.1[2, ])
df.1[1:2, 2]
class(df.1[1:2, 2])
#interger
df.1[[1]]
class(df.1[[1]])
df.1["col.1"]
df.1[["col.1"]]
df.1$col.1
#结果等同于df.1[1]、df.1[col.1]
df.1["1", "col.2"]
li.1[1]
class(li.1[1])
li.1[[1]]
li.1["com.1"]
li.1[["com.1"]]
li.1$com.1
li.1[[2]][,2]
names(vec.1) <- vec.2
names(vec.1)
dimnames(mat.2) <- list(c("a1", "a2"), c("b1", "b2"))
dimnames(mat.2)
rownames(df.1)
colnames(df.1)
names(li.1)
维度
矩阵:两个维度,一个行、一个列
dim函数
dim(mat.1)两行三列结构
dim(df.1)
length(vec.1)长度为5 dim(vec.1)得null(无有价值信息)
length(li.1)成分数量 dim(li.1)得null(无有价值信息)
如下图所示:
赋值
索引
从相应的数据结构或数据对象,提取具体位置上面的信息
向量的索引
vec.1[c(1, 5)]
#向量需要用c函数连接才能索引
矩阵的索引
mat.1[1, 3]
#索引矩阵
mat.1[2]
#矩阵默认按列填充(得第一列的第二个)
mat.1[2, ]
#索引第二行
mat.1[, 2]
索引第二列
class(mat.1[1, 3])
#索引内容的数据类型
如下图所示:
数据框的索引
df.1[1]
#返回第一列数据
df.1[, 2]
df.1[2, ]
df.1[1,2]
class(df.1[, 2])
#整型向量interger
class(df.1[2, ])
#数据框data.frame
df.1[1:2, 2]
class(df.1[1:2, 2])
#interger
df.1[[1]]
class(df.1[[1]])
#两个框框住后运行得数据结构由数据框变为向量
df.1[“col.1”]
df.1[[“col.1”]]
#用列名称,运行结果相同
df.1$col.1
#结果等同于df.1[1]、df.1[col.1]
df.1[“1”, “col.2”]
#用行列名称索引
如下图所示:
列表的索引
li.1[1]
class(li.1[1])
li.1[[1]]
#返回成分上面具体的数据结构和数据
li.1["com.1"]
#返回成分
li.1[["com.1"]]
#返回具体的数据结构
li.1$com.1
li.1[[2]][,2]
#返回第二个成分的第二列
如下图所示:
命名
names(vec.1) <- vec.2
#将vec.2的元素作为vec.1元素的名称
names(vec.1)
dimnames(mat.2) <- list(c(“a1”, a2), c(“b1”, “b2”))
dimnames(mat.2)
#矩阵的行名称和列名称
rownames(df.1)
colnames(df.1)
names(li.1)
如下图所示:
END! (●'◡'●)