1

次のような列名と行名を持つデータのマトリックスがあります。

     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検索で答えを見つけるのは困難です。何かアイデアはありますか?

それが役立つ場合は、列のサブセットごとに図を作成するためにこれを行っています。サブセットは最大10,000個あるため、手動で回避策を実行することはできません。これはループであるか、関数内で何らかの形でネストする必要があります。ありがとう!

4

1 に答える 1

2

解析と評価が必要な文字列として "[" に入れられる R 呼び出しを構築したくありません。文字ベクトルそのものであるオブジェクトを置きたいとします。これを試して:

test <- example.col_list[[1]]  # note "[[" instead of "["

example.matrix[ , test]
于 2012-08-30T19:10:05.740 に答える