提问人:Suraj 提问时间:4/21/2011 最后编辑:zx8754Suraj 更新时间:6/20/2018 访问量:152007
按矩阵列名称提取矩阵列值
Extract matrix column values by matrix column name
答:
60赞
Joris Meys
4/21/2011
#1
是的。但是,如果您想要列,请将您的“测试”放在逗号之后......
> A <- matrix(sample(1:12,12,T),ncol=4)
> rownames(A) <- letters[1:3]
> colnames(A) <- letters[11:14]
> A[,"l"]
a b c
6 10 1
另请参阅help(Extract)
评论
10赞
Suraj
4/21/2011
@Joris - 你知道,寻找 R 问题的答案的一个棘手方面是该语言被命名为“R”。它让谷歌为它的钱而奔波!我使用各种搜索词在谷歌上搜索了我的问题,但一无所获。当在 SO 上提出即使是简单的问题时,它也很棒,因为 SO 被谷歌很好地索引了 - 结果似乎总是弹出到顶部。希望其他初学者能找到这个=)
1赞
Joris Meys
4/21/2011
@SFun28:检查 www.rseek.org,例如这个问题:stackoverflow.com/questions/102056/...但你是对的,这里也可以问一些简单的问题,尽管如果你是新用户,我会简单地把你送到 R 简介。
0赞
Suraj
4/21/2011
@Joris - 甜蜜!rseek 将非常有用。
0赞
Frank
12/3/2016
@Joris,你可能忘了写,as.numeric( A[ ,“l”])
0赞
Joris Meys
12/6/2016
@Frank,如果该矩阵中的值不是数字并且不应转换为数字,这将是一个错误的答案。问题是获取列,而不是尝试将其转换为数字。如果您想使用该技巧转换为向量,则不必这样做。如果选择单个列或行,R 会自动减小维度。您可以避免将其用作索引运算符的额外参数,例如:drop = FALSE
[
A[,'l', drop = FALSE]
32赞
boraas
4/21/2011
#2
> myMatrix <- matrix(1:10, nrow=2)
> rownames(myMatrix) <- c("A", "B")
> colnames(myMatrix) <- c("A", "B", "C", "D", "E")
> myMatrix
A B C D E
A 1 3 5 7 9
B 2 4 6 8 10
> myMatrix["A", "A"]
[1] 1
> myMatrix["A", ]
A B C D E
1 3 5 7 9
> myMatrix[, "A"]
A B
1 2
评论