問題タブ [mapply]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - n *expressions* のリストをデータフレームの各行に適用しますか?
つまり、データフレームの各行に適用したい式のリストがあります。これはこの質問と非常によく似ていますが、関数のリストではなく、式のリストがあるという点で微妙な違いがあります。これが私が試みていることです:
paste
式のテキスト文字列を形成するために渡す方程式項のデータフレームがあります。
これは、「10*2 + 0.5*3 + 300*4 + 1000*5 * x * 1.32 * 0.45」など、テキストとして格納された式のベクトルを返します。
次に、次を使用してテキスト式を R 式に変換する関数を作成しましたparse
。
...funs.txt
は、テキストとして格納された式のベクトルです。
さて、ここが私が困っているところです。Imaginefuns.list
には 2 つの式が含まれます。私が次のようなことをした場合:
... 2x2 行列が返されます。ここでは、答えだけが対角線上にあるようにします。(最終的には、最適化の一環として繰り返し呼び出される約 1,000 の式が必要になるため、追加の計算作業は必要ありません。)
私が試した他のアプローチは次のとおりです。
...しかし、エラーメッセージが表示されdo.call
ます'what' must be a character string or a function
。
ここからどこへ行くべきかについての提案はありますか?
r - factor 関数の引数と出力を使用して mapply から値を返す方法
mapply 関数の出力から係数ではなく値を取得するのに問題があります。以下のコードは、特定の場所と時間の温度を見つけようとします。
コードを実行すると、値ではなく係数が返されます。因子の代わりに値を返す方法はありますか?
lapply を使用してみましたが、同じように動作させることができませんでした。
r - データフレームを返す二重/ネストされた for ループ オーバー関数を R の apply に置き換えます
2 つの入力引数を取り、データフレームを返す関数を考えてみましょう。
この関数の各引数に対して二重ループを構築できます。
この二重ループを適用構造に置き換える方法は?
r - rの「bigmemory」で「mapply」を使用する
R には 3 つの非常に大きなベクトルがあります (元金の 1 つ、金利の 1 つ、条件の 1 つ)。可能なすべての組み合わせを関数 (FinCal パッケージの pmt 関数) に渡す必要があります。各ベクトルを (bigmemory パッケージから) 大きな行列に入れましたが、大きな行列で mapply を実行できません (「この S4 クラスはサブセット化できません」を受け取ります)。大きなマトリックスの唯一のスロットはポインターであり、@ で指定することはできません。大きな行列をループして、このような計算やその他の提案を実行する方法はありますか? 組み合わせは約3億5000万通り。
r - mapply 関数に変数を提供する関数の定式化
最初の例に配置すると正常に動作する次の関数があります。ただし、任意の形式で 2 つの結果を提供するために、2 つの変数にさらに 2 つのリストをそれぞれ mapply 関数内に持たせたいと考えています。変数 w2 は 2 つのコンポーネントを持つリストで、xx は 2 つのベクトルを持つリストです。
2 番目の mapply が機能していないように見えるので、おそらく正しく使用していません。これは、2 つの変数が mapply 関数にフィードされる最後の mapply のループとして定式化できるかどうか、またはこれを行うために別の適用ファミリを使用できるかどうか疑問に思っていました。結果は、正しい最初の例を別々の可変データ フィードで 2 回適用した場合と同じになりますが、リストとして結合されます。
編集
フランクからの応答に続いて。MoreArgs=list ( x = ( xx[[i]][[1]] )) が -- MoreArgs=list(x=(xx[[ i ] ][[ j ]])))、新しい変数が関数に導入されたことを意味します - j - 上記のソリューションにこれを追加することにより、どの部分にも含まれません。