問題タブ [tapply]
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 - R - tapply の結果を「線形化」します (列ごとにアンパックされた 1 つのベクトルに)
データフレームには、いくつかの値を持つベクトルと、各値が属するカテゴリのベクトルがあります。「カテゴリごと」に動作する関数を値に適用したいので、tapplyを使用します。たとえば、私の場合、各カテゴリ内の値を再スケーリングしたいと考えています。
ただし、tapply の結果は再スケーリングされた値のベクトルのリストですが、このリストを統合 (または「線形化」) する必要があるため、再スケーリングされた値の列をデータ フレームに追加できます。
私はそれを行う簡単な方法を探しています。ここにサンプルがあります:
助言がありますか?
ありがとう、アミット
r - 1つではなく2つの列でtapplyを使用する
パッケージreldistからgini()関数を削除してRを使用して、いくつかのプロットのジニ係数を計算したいと思います。gini関数への入力として2つの列を使用する必要があるデータフレームがあります。
gini関数は、計算に最初の要素(ここではc13)を使用し、2番目の要素はc13の各要素に対応する重み(ここではw)です。
したがって、列c13とwを次のように使用する必要があります。
問題は、プロット(idp)ごとにこれを実行したいということです。idpには4000の異なる値があり、それぞれに他の2つの列の値が数十あります。
関数tapply()を使用してこれを実行できると思いました。しかし、tapplyを使用して関数に2つの列を入れることはできません。
ご存知のように、これは機能しません。したがって、結果として取得したいのは、次のようなデータフレームです。
これを行う方法について何か考えがありますか?多分plyrパッケージ?ご協力ありがとうございました!
r - 1つのtapplyまたはaggregateステートメント内の複数の関数
1つのtapplyまたはaggregateステートメントに2つの関数を含めることは可能ですか?
以下では、2つのtapplyステートメントと2つのaggregateステートメントを使用します。1つは平均用、もう1つはSD用です。
私はステートメントを組み合わせたいと思います。
いつでも2つの別々のステートメントを実行して、出力をマージできます。もう少し便利な解決策があるのではないかと思っていました。
私はここに投稿された以下の答えを見つけました:tapplyを使用して列に複数の関数を適用する
ただし、行も列もラベル付けされていません。
私はベースRのソリューションを好みplyr
ます。パッケージのソリューションは上のリンクに投稿されました。上記の出力に正しい行と列の見出しを追加できれば、それは完璧です。
r - 因子のレベルを使用してcorr関数を行列に適用しますか?
私はcorr()関数を使って加重熟考を計算しようとしています。最初の引数は、相関を計算したい 2 つの変数に対応する 2 つの列を持つ行列であり、2 番目の引数は観測値の各ペアに適用される重みのベクトルです。
ここに例があります。
それで私はそれを手に入れ、それを自分のマトリックスで使用することができましたが、因子のレベルに応じて異なる相関を計算したいと思います。tapply() 関数を使用しているかのようにしましょう。
だから私の夢は次のようなことをすることです:
ただし、tapply() でわかるように、最初の要素は行列ではなくベクトルである必要があります。
誰かが私に解決策を持っていますか?
どうもありがとうございました。
編集:私があなたに示したデータフレームの一部で、加重相関の重みが欠落していることに気付きました。したがって、因子のレベルに応じて行列と重みの両方を取得する方法がいくつかあります。
明確であることを願っています。
r - 係数による r の相対度数
ある変数の絶対度数と相対度数の上位 10 の表を、他の因子変数全体で取得したいと考えています。3列のデータフレームがあります。1列は因子変数、2列目はカウントする必要がある他の変数、3列は制約としての論理変数です。(実際のデータベースには 4mln 以上の観測があります)
したがって、「factor」の各因子で「log」== TRUE である「var」の上位の絶対頻度と相対頻度を見つける必要があります。
絶対頻度でこれを試しました(実際のデータベースでは、上位10を抽出します。ここでは2行を取得します):
次の関数は、要因別にグループ化するのではなく、データベース全体の相対頻度を見つけるのに役立ちます。
しかし、「log」== Tの「var」のTOTAL nrowではなく、絶対頻度を「var」の行数で割る必要があるため、相対頻度に問題があります。分母が因子ごとに異なるように、タップループでそれを使用する方法がわかりません。また、多くのテーブルを生成して結果をマージするのではなく、1 つのタップループで両方の関数を使用したいと考えています。しかし、そのような2つの機能を組み合わせる方法がわかりません。
r - data.frame のグループごとに合計する
(データフレーム内の)カテゴリ変数ごとに数値変数の合計を取得しようとしています。を使用してみましtapply
たが、全体ではかかりませんdata.frame
。
これは、次のようなデータを使用した実際の例です。
を使用するtapply
と、一度に 1 つのベクトルを取得できます。
しかし、私はこのようなものを手に入れることにもっと興味があります:
どんな助けでも大歓迎です。ありがとう。
r - グループ化係数、データ フレーム、およびタップに関する問題
私は R と統計全般に非常に慣れていないため、tapply() を機能させるのに問題があります。15 列と数千行のデータ フレームがあります。x はデータフレームy1<-((x>0)&(x<=5))
の列名です。次に、これらの論理ベクトルを結合し、factor() を使用してグループ化係数に変換します。これですべてがうまく機能しているように見えます。
tapply(dataframe, group, sample, size=20)
問題は、グループ化係数を指定してtapply() を使用しようとするとgroup
、「引数は同じ長さでなければなりません」というエラーが発生することです。試してみるlength(dataframe)
と、データフレームの列数 (15 のみ) がlength(group)
返されますが、行数 (千) が返されます。論理ベクトルとグループ化係数を作成する方法にエラーはありますか?
Maxim.K が提案した dput() からの出力は次のとおりです (申し訳ありませんが、あまり整頓されていません)。
グループの場合:
先頭から 15 個の値 (dput() から)
...そして尻尾から
tapply() (サイズ 20) を使用して、8 つのカテゴリすべてからランダム サンプルを取得しようとしています。
[編集] 当然のことながら、問題は質問と要件ではなく、私の理解にありました。私は質問を読み違えました。実際、データ フレーム全体からではなく、1 つの列からのみサンプリングすることになっていました。
r - 2 つの要因による変数の平均
次のデータがあります。
以下を使用して、メソッドごとに各種のサンプル数を取得できます。
種ごとにメソッドごとに平均長を取得するにはどうすればよいですか?
r - Rのタップ機能
次のように、移動平均関数を 1 つの変数に適用しようとしています。
data$td
これは、2 つのカテゴリを持つ文字変数です。
しかし、これはエラーを取得して動作しません:
どうもありがとう!