2017-03-04 3 views
-2

の文字列を渡す/使用する方法[の文字列をサブセットに渡す/使用する方法アレイ。私はこのような何か(4アレイを薄暗く)について考えてきた:[サブセットに

inputDims <- ",,'CCC'," 

outputArray[parse(text=inputDims)] 

は、上記動作しない - これを達成するためにどのように?

[内で論理ベクトル(または行列)を使用することに興味はありません。可能であれば、文字列(この例のような形です)です。文字ベクトルを作成するための

+0

:あなたはこれに対処する方法を教えてもらえ:その後、パッケージロードでこれを行う)あなたの問題に十分に類似していないhttp://stackoverflow.com/questions/42578273/array-subsetこれはより複雑な問題であり、この問題はそれを解決しようとしているため、名前から要素を1次元から動的に... – RSzT

+0

達成しようとしていることは何ですか? [次元を動的にサブセット化する](http://stackoverflow.com/questions/42562823/subset-parts-of-array-with-dynamic-dimension) –

+0

'idx < - " CCC "'を設定した場合、 'outputArray [,, idx、]'はあなたが望むものを返します。 –

答えて

0

(これはトラブルこれらの線に沿って進むの値を見てを持つ。恐ろしいハックのように思えるが、おそらくそれは、「コール」R機能tobuild必要とされているものを明確にします。)

使用scan適切な長さの次に配列を最初の要素とするリストに追加します。成功するためにスライスを取得するには、TRUEに「空」の位置を変換する必要があります:あなたは以前abindする:: ASUBを参考にした

vec <- scan(text= inputDims, sep="," , what="") 
arglist <- list(outputArray) 
arglist[ 2:(length(vec)+1) ] <- as.list(vec) 
arglist[ arglist==""] <- TRUE 
# Using your example in the other question 
> do.call("[", arglist) 
    bb bbb 
a1 NA NA 
a2 NA NA 
a3 NA NA 

、あなたがいること(それはその引数で何体操を確認するためのAnt場合

downvotersについては
getAnywhere(asub.default) 
+0

いいですね - ありがとう!それは、 "使用されていない"暗闇のために "TRUE"を使用することが重要であるようです - 私はそれを把握していませんでした。 – RSzT

+0

リストへの変換後にそれを行うことも重要です。そうでなければ、この割り当てが試みられたベクトルのモードに基づいて論理が「文字」または「数値」に強制されるからです。 –