問題タブ [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 - Tapply ジャンキーの習慣を断ち切る
いじりながら R を学んでいて、tapply 関数を悪用していると思い始めています。次のアクションのいくつかを実行するためのより良い方法はありますか? 確かに、それらは機能しますが、より複雑になるにつれて、より良いオプションを失っているのではないかと思います. ここでいくつかの批判を探しています:
更新:これはいくつかのサンプルデータです...
データ ダンプを更新します。
r - グループ化関数 (tapply、by、aggregate) と *apply ファミリー
R で何か "map"py を実行したいときはいつでも、通常はapply
ファミリ内の関数を使用しようとします。
しかし、私はそれらの違いを完全には理解していませんでしsapply
たlapply
.私が欲しいものを手に入れるまで、それらすべてを調べてください。
誰かがいつどちらを使用するかを説明できますか?
私の現在の(おそらく間違っている/不完全な)理解は...
sapply(vec, f)
: 入力はベクトルです。output は vector/matrix であり、 elementi
はであり、複数要素の出力があるf(vec[i])
場合は行列が得られますf
lapply(vec, f)
: と同じsapply
ですが、出力はリストですか?apply(matrix, 1/2, f)
: 入力は行列です。出力はベクトルで、要素i
は f(行列の行/列 i) です。tapply(vector, grouping, f)
: 出力は行列/配列であり、行列/配列の要素はベクトルf
のグループ化の値であり、行/列の名前にプッシュされますg
g
by(dataframe, grouping, f)
:g
グループ化します。f
グループ/データフレームの各列に適用されます。f
グループ化と各列の値をきれいに印刷します。aggregate(matrix, grouping, f)
: に似てby
いますが、出力をきれいに印刷する代わりに、集約はすべてをデータフレームに貼り付けます。
副次的な質問: 私はまだプライヤーやリシェイプを学んでいません。これらすべてを完全に置き換えますかplyr
?reshape
r - tapply で引数を変更しますか?
A、B、C などのいくつかのグループがあり、cut
これらのグループに基づいて別の変数が必要です。つまり、各グループには同じ変数に対して特定のブレークがあります。
グループの平均を計算する必要がある場合は、次のtapply
ように使用します。
cut
残念ながら、異なるグループの break=c(...) 引数を変更してこれを修正する方法がわかりません。
助言がありますか?私はそれをやりたいのですtapply
が、カスタムメイドの機能以外の他のソリューションも適しています。
編集:いくつかの小さな例:
等々...
r - 問題のようにタップしますが、データフレーム出力が必要です - R
これは私の最初の投稿なので、適切に行う必要があることを説明できれば幸いです。私はまだRに慣れていないので、これに答える投稿を読んだことがあるかもしれませんが、私の人生では、それらが何を意味するのか理解できません。これがすでに回答されている場合は、事前に謝罪してください。
ラジオカラーから取得した GPS 位置の非常に大きなデータ セットがあり、毎日の位置の数に一貫性がありません。データセットを調べて、GPS 信号の精度レベルに基づいて、毎日 1 つのデータ ポイントを選択したいと考えています。
したがって、本質的にはこのように見えます。
そして、残りの関連データを保持しながら、毎日最も正確なポイント (最も低い精度の測定値) を引き出したいと考えています。
現在、タップ機能を使用しています
この方法を使用して、最小値を毎日 1 つ取得できますが、関連する座標とタイミング、およびその他すべての重要な情報を取得することはできません。データ セットが 300 000 行近くあるため、実際に取得できます。手でやらないでください。
基本的に、タップと同じ結果を得る必要がありますが、個々のポイントではなく、そのポイントが含まれる行全体が必要です。
手を貸していただける方に、事前に感謝します。さらに情報が必要な場合はお知らせください。お届けできるよう最善を尽くします。
r - タップ結果をRの元のデータフレームに復元する
私は、さまざまな年のさまざまな国への企業の年間輸出を含むデータフレームを持っています。私の問題は、毎年、各国にいくつの企業があるかを示す変数を作成する必要があることです。次のような「tapply」コマンドでこれを完全に行うことができます
そしてそれはうまく動作します。私の問題は、incumbents には lengthがあり、その後の回帰で (もちろん、年と目的地に一致する方法で) 使用するために、length(destination-year)
長さが必要ですlength(id)
(毎年、各目的地にサービスを提供する多くの企業があります)。「for」ループでこれを行うことができますが、データベースが巨大であるため、非常に時間がかかります。
助言がありますか?
r - Rで等しくない列を分割する方法
14列を含むデータセットがありますが、Rに読み込むと、2列として表示され、後者の列は1列として読み込まれ、すべて「。」で区切られます。
私は以下を使用して読みました:
dat <-read.table( "/data/GER.female.RAWMACH"、header = F、sep = "\ t")
以下に出力を示します。
頭(データ)
V1
トレイト
ケース
ケース
ケース
ケースケース
ケース
ケース
V2 MARKER .......... ALLELES..FREQ1 .... RSQR ... EFFECT1..OR ...... STDERR..WALDCHISQ.PVALUE ..... LRCHISQ.LRPVAL.NCASES .NCONTROLS
rs7 TA .9104 .0001 -3.944 0.019 19.634 0.0403 0.8408 0.0403 0.8409 260446
rs6 AC .9114 .0002 -2.552 0.078 14.349 0.0316 0.8589 0.0316 0.8589 260446
rs9 CT .8444 .0001 2.772 15.985 15.076 0.0338 0.8541 0.0338 0.8542 260446
rs5 GA .9164 .0001 -3.683 0.025 18.039 0.0417 0.8382 0.0417 0.8383 260446
rs2 TC .5168 .0001 -2.466 0.085 10.811 0.0520 0.8195 0.0520 0.8196 260446
rs1 TG .8229 .0002 -1.727 0.178 12.241 0.0199 0.8878 0.0199 0.8878 260446
私はいくつかのこと(テーブルの書き換え、colsplit)を試しましたが、成功しませんでした。私は何が欠けていますか?
私はあなたが持っているかもしれないどんな提案にも感謝します!
r - Tapplyを、レプリケート、サンプル、合計を含む関数と組み合わせるにはどうすればよいですか?
さまざまな学校の生徒とその体重に関する詳細が記載されたcsvファイルがあります
例えば
n個の重みを置き換えて繰り返しサンプリングし、n個の重みを合計して、結果の分布の95番目の分位数を計算したいと思います。これを200校の各学校の生徒に対して行い、1〜25の範囲で変化させて、次の出力を生成します。
私はtapply()を使用して、200校すべてのn=1の答えを見つけています
そして、replilcate()、sum()、sample()を使用して、2つの重みを加算する1000の組み合わせをシミュレートしています。
tapply関数内で合計とサンプルを複製するために、上記の2つを組み合わせるのに問題があります。
お知らせ下さい。
私はRの初心者です。
r - forループ内でtapply()を使用し、Rで出力を印刷する方法は?
データに関数を適用するために tapply() を使用しています
これを for ループ内で使用して、出力を出力したいと思います。次のことを試しましたが、エラー メッセージが表示されます。Error: unexpected symbol in "for(n in 12:13) (t=tapply(ow,sc,ndropfunction,n,p=0.95) output
r - Rでテーブル形式を変換するにはどうすればよいですか
具体的には、
次のセットアップを使用しました。
newdata <- tapply(mydata(#), list(mydata(X), mydata(Y)), sum)
現在、次のようにリストされているテーブルがあります。
X= 州、Y= 州内の郡、#= 何かの数値の合計
- __ Y1 Y2 Y3 Yn
- X1 ## ## ## ##
- X2 ## ## ## ##
- X3 ## ## ## ##
- Xn ## ## ## ##
必要なのは、次のようにリストされたテーブルです。
- X1 Y1 ##
- X1 Y2 ##
- X1 Y3 ##
- X1 Yn ##
- X2 Y1 ##
- X2 Y2 ##
- X2 Y3 ##
- X2 Yn ##
- Xn Y1 ##
- Xn Y2 ##
- Xn Y3 ##
- Xn Yn ##
r - データ フレーム内のグループ化されたデータ間の各観測値の標準誤差
3 つの列の要因によってグループ化された観測値の標準誤差を計算したいデータ フレームがあります。グループの平均の標準偏差と標準誤差は、tapply を使用して次のように計算されます。
以前に個々の観測値 (列 colSD に保存されている) の標準偏差を計算しており、対応する標準誤差を計算したいと考えています。以下の関数を使用して、標準エラーを取得できます。
しかし、結果は配列として与えられ、各グループからの n 個の観測値が各位置の文字列 (と思います) として表示されます。関数を変更するか、別の関数を使用するか、配列を各観測値からの標準誤差が独自の位置を持つベクトルに変換することにより、さらに移動する方法はありますか?
小さなサンプル (dput(df) を過ぎた方が作業しやすいですか?):
0.080/sqrt(2)
などの各観測値の標準誤差を計算し、0.093/sqrt(2)
結果を追加の列としてデータ フレームに追加したいと思います。