問題タブ [lapply]
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 - *apply 関数でデータフレームの列名にアクセス
R * apply関数を使用して初心者向けのチュートリアルを作成する必要があります(初めてreshapeまたはplyrパッケージを使用せずに)
私はlapply
(apply
データフレームには適していないため)このデータフレームへの単純な関数を試して、名前付き列を使用してデータにアクセスしたい:
私はこのエラーが発生$ operator is invalid for atomic vectors
しました。おそらく、データフレームが laply によって変更されたためです?... $という名前の列でそれを行う最良の方法はありますか?
@DWin の回答で最初の質問を解決します。しかし、混合データフレーム(数値+文字)で別の問題、誤解があります:
私の新しいユース ケースでは、2 つの関数を使用して距離を計算します。これは、目的が他のすべての Point 間の距離 Point を比較するためです。
r - FUN内の重複インデックス名にアクセスする
lapply()関数でリストインデックス名を取得する方法はありますか?
以前、lapply()で返されたリストにインデックス名を保持できるかどうかを尋ねましたが、カスタム関数内で各要素名を取得する簡単な方法があるかどうかはまだわかりません。名前自体でlapplyを呼び出すのは避けたいので、関数パラメーターで名前を取得したいと思います。
r - lapply を使用して参照番号を取得する
重複の可能性:
FUN 内のラップリー インデックス名にアクセスする
lapply を使用しているときに、リスト内のオブジェクトの番号にアクセスできるかどうか疑問に思っていましたか?
for(i in 1:100){.....} 関数を使用していた場合、print(i) を使用してこれを取得できますが、lapply を使用してこれを行う方法はありますか。関数substitute()を使用して、6番目のオブジェクトにいる場合、何かリストX [[6L]]を返すことができることを知っていますが、6を返すだけではありませんか?
ありがとう
r - 複数のファイルに strsplit 関数を適用する
コードのステップ 4 で間違っていることを誰かが見つけてくれませんか (strsplit)。
ディレクトリに「101_E45_N66.csv」、「102_E46_N76.csv」、「103_E47_N86.csv」という名前の 3 つのファイルがあります。
リストでそれらを読み込んで、名前を分割して、各ファイルに 3 つの新しい列を追加しようとしています。
次のように、個々のファイルに対してどのように実行できるかについての以前の質問から知っています。
しかし、リストに適用するlapply関数を作成しようとしているとき、ファイル名の1つだけを使用し、3つのファイルすべてに同じ名前の列を追加するように見えるため、何が間違っているのかわかりません.ファイルをディレクトリに戻します (コードのステップ 4 を参照してください)。使用しているコードは次のとおりです。
ステップ4で私が間違っていることを教えてください。
どうもありがとう、
アヤン
私のサンプルデータ:
r - lapplyを繰り返し呼び出すと、クロージャの変数値が失われるのはなぜですか?
一連の呼び出しを使用して、理想的には最後の呼び出しで最終的な目的の値を返すlapply
カリー化された関数のリストを作成しようとしています。lapply
カリー化は機能しますがlapply
、2 番目のアプリケーションの後に常にリストの最後の要素を適用するようです。
例:
これは期待どおりに機能します。
「スコープlapply
を壊す」の次:curry
curry
orrcurry
関数の結果とは思えません。roxygen
のCurry
関数を使用しても同じことが行われます。curry.a
上記のクロージャーで作成するか、使用してcurry.a <- list(curry(myadd, 10), curry(myadd, 1000))
も結果は同じです。
そしてもちろん最後のカレー:
何が起きてる?
r - llply にリスト引数を渡す
私は、この質問に対する満足のいく答えを見つけたことがありません。関数があると仮定します:
a
data.frame
多くのオブジェクトを含むリストです
b
特別なクラスのデータを含むリストです (ppp
ライブラリのクラスspatstat
が役立つ場合)。
c
は整数です。
そして、その関数を介してリストをプッシュしたい:
のリスト項目の名前は、 listb
の data.frames の列「type」に対応していますa
。したがって、関数内foo
ですぐに実行できます。
b の基礎となる各空間パターンを a の正しい data.frame と一致させます。b には約 10 個のアイテムがあり、a には 1000 個のアイテムがあります。残念ながら、llply
(または一般的には)引数リストの場合でも、一度にlapply
1 つのリスト項目をプッシュしようとし、正しいリスト項目と正しいデータ フレームを一致させる 2 行のコードが失敗するため、これは機能しません。リスト全体。これを回避する方法はありますか?a
b
b
b
ピンチでは、別のリストを (事実上 と を組み合わせa
てb
) 作成することもできます。ここで、各リスト項目自体はdata.frame
と に対応するポイント パターン オブジェクトを含む長さ 2 のリストです。ただし、これにより、何千もの冗長コピーが発生します (また、クラスターでこの操作を実行する効率が大幅に低下します)。
更新mclapply
:これをクラスターで実行するように変更する予定です。でそれを行うことはできませんmapply
(がある場合を除くmcmapply
)。
r - AdjustOHLC-ティッカーの文字ベクトルをループするソリューションが必要
私がやりたいことはかなり簡単ですが、私はそれを理解することができませんでした。ここで概説したのと同じようなことができると思いました
によって返されるxtsOHLCオブジェクトであるティッカーの文字ベクトルがありますgetSymbols
。シンボルの各ティッカーをループし、シンボルをに渡してadjustOHLC
分割を調整したいと思います。
変数'symbol'の値を取得adjustOHLC
していないようです。
使用するget(symbols)
と同じ結果が得られます(この投稿の上部に表示されているリンクでも同様のアプローチが使用されています)。
lapply
これをもっと速くするためにも利用できると思いましたが、最初は上記の問題に悩まされていると思います。
lapply(symbols, function(x) adjustOHLC(x, adjust=c("split"), use.Adjusted=FALSE) )
簡単そうです-これがとても些細なことであるならば、私は謝罪します。ヘルプに感謝します。
r - この R スニペットをより速く、より R らしくするにはどうすればよいでしょうか?
他のさまざまな言語から来て、R は強力で直感的だと思いますが、そのパフォーマンスには興奮していません。そこで、私が書いたスニペットを改善して、R でより適切にコーディングする方法を学ぶことにしました。
これは私が書いた関数で、ベクトルがバイナリ値 (2 つの異なる値または 1 つの値) であるかどうかを判断しようとしています。
編集: この関数は、ベクトルを調べてから、c()
バイナリ値でない場合は戻り、バイナリ値のc(a, b)
場合は a が小さい値で b が大きい値を返すことが期待されます (a == b の場合、c(a, a)
.
私はlapply
これisBinaryVector
をして取得します:
中程度のサイズのデータセット (約 1800 * 3500、それらの 2/3 はバイナリ値) にかかった時間は約 15 秒です。セットには浮動小数点数のみが含まれます。
とにかく私はこれをより速く行うことができますか?
ご意見ありがとうございます。
r - Rリスト内のサイズが異なるオブジェクトに対して要素を繰り返します
Rには、要素の数が等しくないオブジェクトで構成されるリストがあります。例えば、
オブジェクトの最大長を見つける方法を理解しました。
また、どのオブジェクトが最長ではないかを識別する方法もあります。
私が今やらなければならないこと:リスト内のオブジェクトについてnotlongest
、その要素を何度も繰り返してlmax
、新しいリストを取得します。つまり、オブジェクトbとcについて、それらの要素を2回繰り返すと、次のような新しいリストが得られます。
関数には簡単な答えがあると思いますが、わかりlapply
ません。この質問が以前に行われたことがある場合は、お詫び申し上げます。ありがとうございました!
r - Rで、ループまたはラップリーから名前でリストを呼び出します
リストに簡単に変換できる「by」呼び出しの出力を使用しようとしています...しかし、リストはまだ時々私に逆らいます