找回密码
 注册
查看: 2755|回复: 0

R语言如何访问对象的名称

[复制链接]
发表于 2011-1-22 18:28:52 | 显示全部楼层 |阅读模式
names是一个对象元素的字符型标签,它们一般情况下是可选的属性,名
称有多个种类(names, colnames, rownames, dimnames)。
names是一个和对象有同样长度的向量并且可以通过函数names来访问。
> x <- 1:3
> names(x)
NULL
> names(x) <- c("a", "b", "c")
> x
a b c
1 2 3
> names(x)
[1] "a" "b" "c"
> names(x) <- NULL
> x
[1] 1 2 3
对于矩阵和数据框,colnames和rownames分别是列和行的标签。它们可
以通过各自的函数来访问,或者通过dimnames返回包含两个名称向量的列
表。
> X <- matrix(1:4, 2)
> rownames(X) <- c("a", "b")
> colnames(X) <- c("c", "d")
> X
c d
a 1 3
b 2 4
> dimnames(X)
[[1]]
[1] "a" "b"
[[2]]
[1] "c" "d"
对于数组,可以用dimnames来访问各维的名字:
> A <- array(1:8, dim = c(2, 2, 2))
> A
, , 1
[,1] [,2]
[1,] 1 3
[2,] 2 4
, , 2
[,1] [,2]
[1,] 5 7
[2,] 6 8
> dimnames(A) <- list(c("a", "b"), c("c", "d"), c("e", "f"))
> A
, , e
c d
a 1 3
b 2 4
, , f
c d
a 5 7
b 6 8
如果一个对象的元素有名称,它们可以通过名称被提取,和使用下标
一样。实际上,因为原始对象的属性将仍被保留,所以这里的“提取”
应该叫作“取子集”更合适。例如,如果数据框DF包含变量x,y和z,命
令DF["x"]将返回一个只包含x的数据框;DF[c("x", "y")]将返回包含两个
变量的数据框。如果列表中的对象有名称,这种方法也将在列表中起作用。
就像读者必然认识到的那样,在这里使用的下标是一个字符型向量。就
像在前面看到的数值型或逻辑型向量那样,这个向量可以被预先定义然后用
来提取相应的值。
要从一个数据框中提取一个向量或者一个因子,可以使用运算符$(例
如DF$x),这对列表同样有效。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|小黑屋|生物统计家园 网站价格

GMT+8, 2024-11-21 22:13 , Processed in 0.032035 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表