【发布时间】:2013-01-10 15:28:57
【问题描述】:
我有一个包含几列的矩阵,我想得到 在提取的特殊列上(作为向量),但根据 该矩阵中的另一列。
到目前为止,我使用的是我发现没有的 for 循环方法 很漂亮。我想有更好的方法来做这些事情。
这是一个工作示例:
# creating a example matrix with two columns
df <- data.frame(colA=c("A","B","C","D","E"),colB=(1:5))
mat <- as.matrix(df)
# my desired order
my_order <- c("C","D","A","B")
# For loop and collecting results in a vector
out <- NULL
for(i in my_order) out <- c(out,mat[mat[,1]==i,2])
print(out)
任何建议,更优雅且计算速度更快的方法的示例?
【问题讨论】:
-
如果 my_order 中不存在值怎么办?如果 colA 中的值重复怎么办?