【发布时间】:2019-08-09 05:25:09
【问题描述】:
我有一个没有列名的矩阵,如下所示:
>my_matrix
[,1] [,2] [,3]
ENSG00000000345 1.324266e+03 1.071842e+03 1.024920e+03
ENSG00000000105 3.750147e+01 8.081121e+02 4.736242e+01
ENSG00000000719 3.216755e+03 2.001329e+03 1.934501e+03
总共有 280 列和数千行。
我还有一个二元素向量列表,如下所示:
> head(mapping)
[[1]]
[1] "100" "bob"
[[2]]
[1] "10" "alice"
[[3]]
[1] "1" "mark"
[[4]]
[1] "101" "simon"
[[5]]
[1] "102" "jeff"
[[6]]
[1] "103" "alexander"
列表中有 280 个向量。每个向量中的第一个元素是数字 1 到 280。第二个元素是唯一的字符串。
我想让矩阵的列名成为映射列表中的唯一字符串(每个向量的第二个元素),使用每个向量的第一个元素来对应矩阵的列索引。
例如,第 1 列将是“标记”。
我正在努力解决向量的顺序与矩阵列索引不对应的事实。如果是这样的话,这样的事情会起作用:
colnames(my_matrix) <- lapply(mapping, `[[`, 2)
有人可以帮忙吗?提前谢谢你。
【问题讨论】:
-
试试
m1 <- do.call(rbind, mapping); colnames(my_matrix)[as.numeric(m1[,1])] <- m1[,2] -
@akrun 这工作得很好。谢谢!
标签: r