-2

私はExcelユーザーであり、日常的なデータレポートタスクの一部をRに移行しようとしています。Excelの最も強力な機能の1つは、データをピボットおよび並べ替える機能です。これらの関数がRの機能でもあることは知っていますが、この特定のグループ化と並べ替えの問題を解決するためのコードの記述方法がわかりません。

基本的に、RIを使用すると、次のようなデータセットが必要になります。

シンプルなデータセット

そして、次のように変換します。

ピボットデータセット

ファイナルテーブルはチームごとにポイントをグループ化し、スコアされたポイント数で要約データを並べ替えていることに注意してください。Rでこれを行う方法を学ぶことは、大幅な時間の節約になります。

よろしくお願いします!

4

2 に答える 2

3

必要な2つの関数...例があれば...arextabsftable。まず、既存のテーブルをデータフレームに変換してから、カウントが「Freq」という名前の変数に含まれていることに注意してください。次に、少数のディメンションに再集計します。

> Tdf <- as.data.frame(Titanic, stringsAsFactors=FALSE)
> str(Tdf)
'data.frame':   32 obs. of  6 variables:
 $ Class   : chr  "1st" "2nd" "3rd" "Crew" ...
 $ Sex     : chr  "Male" "Male" "Male" "Male" ...
 $ Age     : chr  "Child" "Child" "Child" "Child" ...
 $ Survived: chr  "No" "No" "No" "No" ...
 $ Freq    : num  0 0 35 0 0 0 17 0 118 154 ...

> ftable( xtabs(Freq ~ Class+Sex, Tdf) , row.vars=c("Class", "Sex") )
Class Sex        
1st   Female  145
      Male    180
2nd   Female  106
      Male    179
3rd   Female  196
      Male    510
Crew  Female   23
      Male    862

私はそれについてあまり多くのポイントを獲得していませんが、私は一度に小計と総計を行う方法をSOで示しました:

R:データフレームからの集計として列の合計と行の合計を計算する

于 2012-06-08T22:16:42.813 に答える
2

まず、RとSOへようこそ。質問を投稿するためのここのガイドラインに従うと、より良い回答が得られることがわかります。

優れたRの再現可能な例を作成するにはどうすればよいですか?

あなたは多くの方法であなたが求めていることを達成することができます。

sumまず、によって作成された各グループに対して関数を使用する必要がありますc(Team,Player)。これを行うにはいくつかの方法があります。

  • byベースRに加えas.data.frame.byて、taRifxパッケージに
  • ddplyplyrパッケージに

次に、結果の出力を取得して並べ替えます(これも、さまざまな方法で行います)。

  • sorttaRifxパッケージに
  • arrangeplyrパッケージに

これを頻繁に行うように思われるので、2つのステップを希望どおりに自動的に実行する独自の関数を作成することを強くお勧めします。その後、その関数を自分の.Rprofileまたはパッケージに入れて、いつでも利用できるようにすることができます。

于 2012-06-08T21:49:12.263 に答える