2016-10-04 16 views
-1

私はJava/C++のバックグラウンドから来て、実際にはRを使って実際のプロジェクトを開始しました。R、欠落しているデータがあると行列要素にアクセスする方法

私が常に苦労していることの1つは、マトリックス(または任意のタイプのリスト/ベクター/ etc。)の加盟です。

多くの場合、行列オブジェクトに格納された一連のデータがあり、行を抽出し、計算を実行してから次の行に移動したいことがあります。 しかし、行列の行を繰り返し処理するだけではなく、行の名前でアクセスする必要があることがあります。

与えられた名前の行がないときに問題が発生します(これは、私が扱っているデータに多く発生する傾向があります)。私の機能は単に打ち切ります。

私が必死に探しているのは、「null」、「FALSE」、「どんなオブジェクト」であっても、スクリプトを実行し続けることができる方法で行列行にアクセスすることです。データが失われても 確かに私の与えられたrownameがすべての行列rownamesの一部であるかどうかを確認することができますが、それは実行可能ではありません。

+1

を参照してくださいSO上ようこそ! [ask]と[mcve]をお読みください!あなたの質問を編集して、再現可能な例を与えましょう! – jogo

+0

*私は与えられたrownameがすべての行列rownamesの一部であるかどうかを確かめることができますが、それは単に実行可能ではありません。*大規模なデータがあり、インデックスの代わりにrownamesを使用しているのは、 ... – Cath

+0

もっと具体的な例を教えてください。あなたは 'm '(マッチ[c(" b "、" d "、" a "、" b ")、rownames(m))]のような構造体を使って"整数 " (m = matrix(1:6,3,2、、list(letters [1:3]、NULL))は、 ) ')、またはより特殊な構造を使用しようとしている場合は、' '[" '関数にメソッドを追加し、内部で適切なチェックを行います。 –

答えて

1

文をtry()にラップし、エラーがないかどうかを確認してください。

tmp <- matrix(1:4, 2, 2, dimnames = list(c("a","b"), c("c", "d"))) 
result <- try(tmp["x",]) 
if(inherits(result, "try-error")) result <- NA 

もRのヘルプ

?try 
?tryCatch 
関連する問題