問題タブ [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 - Vectorize() と apply()
Vectorize()
と の関数apply()
は、R
多くの場合、同じ目的を達成するために使用できます。私は通常、読みやすさの理由から関数をベクトル化することを好みます。これは、メインの呼び出し関数が目の前のタスクに関連しているのに対し、関連してsapply
いないためです。Vectorize()
また、R コードでそのベクトル化された関数を複数回使用する場合にも役立ちます。例えば:
対
ただし、少なくともSOではVectorize()
、ソリューションにのみapply()
(または兄弟の1つ)の例はほとんど見られません。より良い選択肢とVectorize()
なる効率性の問題やその他の正当な懸念事項はありますか?apply()
r - 2 つのベクトルの要素をアルファベット順に貼り付ける
2 つのベクトルがあるとします。
私がやりたいのは、1番目のペア、2番目のペアなどを貼り付けることです.....ただし、各ペアの2つの要素をアルファベット順に貼り付けたいです。上記の例では、最初の 2 つのペアは既にアルファベット順になっていますが、3 番目のペア 'harry' と 'chris' はそうではありません。このペアには「クリス・ハリー」を返したい。
これを2ステップのプロセスで行う方法を考え出しましたが、これを行うための簡単な方法(1行の方法)があるかどうか疑問に思っていましたpaste
か?
私の解決策:
これはアルファベット順にペアを与えます...しかし、1行の方法はありますか?
r - Rでの1回の呼び出しで関数を適用し、複数の変数を割り当てる
考慮すべきいくつかのサンプル R コード:
つまり、これの要点は、 find.key 関数を介してルックアップ テーブル (連想配列/リスト) に基づいて新しい変数 (NewX2、Newy2) を追加したいということです。
コードを DRY に保つ方法はありますか? 特にここ:
よくわからないsapply
、またはlapply
助けることができますか?または、ここ%=%
に見られるようなものかもしれません。
私はこのようなことをしたいです...(うまくいけば、これは理にかなっています):
r - R で mapply を使用して、前の反復の出力を現在の反復の入力として使用する
mapply で使用する最適化の長い行があり、各反復は次のようになります。以前の反復の最適化された値の出力を、現在の反復の開始点として使用したいと思います。なんとなく可能ですか?それとも、R で別のパッケージを使用して、それほど苦労せずにそれを行うことができますか?
明確にするために、100 個の値のベクトルがあるとしましょう。各反復で、1:50、2:51 などから 50 個を取得して、3 つのパラメーターを持つモデルに適合させます。出力は、3 列 51 行のデータセットです。後続の反復にはほぼ同じデータがあるため、プロセスを高速化したいと考えています。
arrays - R で多次元配列を交差させる
識別子の複数のリストを交差させ、リストのペア間のオーバーラップ数を含むテーブルを作成することに興味があります (「rk」と「t」)。私はsapplyが進むべき道であるという漠然とした考えを持っていますが、チュートリアルを検索して読んだ後でも行き詰まっています。
編集:リストの2つのリストをグループ化し、提案されているようにsapply/mapplyを試すのが最善だと思いました
しかし、私はRの初心者であり、ループと適用機能の使用に関するガイダンスを本当に感謝しています。しかし、私は rk1 の交点しか見えません (ただし、1 2 3 2 である必要がある rk2 は見えません)。
r - 複数のデータの異なる列にマップする
2 つのベクトルを取り、数値を計算する関数があります (cor
相関のように)。ただし、約 6000 列の 2 つのデータセットがあり (2 つのデータセットの次元は同じです)、関数は相関値を含む 1 つのベクトルを返す必要があります。
ループを含むコードは次のようになります。
これは問題なく動作しますが、効率的な理由から、apply-family、明らかに mapply 関数を使用したいと考えています。
ただし、長さ 9 のs のmapply(cor,m,n)
ベクトルを返します。NA
編集/解決策
@akrun によって提供された解決策は、マトリックスの代わりにデータフレームを使用することでした。
さらに、提案された 2 つのソリューション間の速度テストでは、-mapply
バージョンが よりも高速であることが示されましたsapply
。