我有一个包含列名和行名的数据矩阵,如下所示:
Col1 Col2 Col3 ...
Row1 0.1 0.2 0.4 ...
Row2 1.8 13.1 0.2 ...
Row3 8.0 9.2 9.1 ...
... ... ... ...
我有一个包含多个列标题子集列表的对象,例如:
$list1
[1] "Col1" "Col2" "Col13" "Col56" "Col267" "Col300"
[7] "Col301"
$list2
[1] "Col4" "Col6" "Col7" "Col54" "Col199" "Col203"
...
我想抓取原始矩阵的一个子集,其中只有每个列表中的列。如果我明确指定列标题,似乎我可以做到,例如:
example.matrix[,c("Col4","Col6","Col7","Col54","Col199","Col203")]
但是,如果我创建一个与该字符向量匹配的数据对象,它就不起作用:
test <- as.character(example.col_list[1])
#^this prints to terminal as
#"c("Col4","Col6","Col7","Col54","Col199","Col203")"
example.matrix[,test]
这给出了一个Error: subscript out of bounds
. 在玩弄了这个变化之后,使用子集函数,试图找到列的索引(使用 which 和 match 函数),似乎没有任何效果。这一切似乎都取决于无法像我认为的那样解释每个列名列表。我知道我可能遗漏了一些简单的东西,但经过长时间的努力,很难在 SO 或 Google 搜索上找到答案,有什么想法吗?
如果有帮助,我这样做是为了为每个列子集制作一个数字,并且有大约 10k 个子集,因此手动解决方法是不可行的。我需要以某种方式嵌套这是一个循环或函数内。谢谢!