[解決済み] 各グループの中で最大値を持つ行を選択する。
2022-07-30 13:21:52
質問
被験者ごとに複数のオブザベーションを持つデータセットがあります。各被験者について、'pt'の最大値を持つ行を選択したい。例えば、以下のようなデータセットがあるとします。
ID <- c(1,1,1,2,2,2,2,3,3)
Value <- c(2,3,5,2,5,8,17,3,5)
Event <- c(1,1,2,1,2,1,2,2,2)
group <- data.frame(Subject=ID, pt=Value, Event=Event)
# Subject pt Event
# 1 1 2 1
# 2 1 3 1
# 3 1 5 2 # max 'pt' for Subject 1
# 4 2 2 1
# 5 2 5 2
# 6 2 8 1
# 7 2 17 2 # max 'pt' for Subject 2
# 8 3 3 2
# 9 3 5 2 # max 'pt' for Subject 3
被験者1、2、3はそれぞれ5、17、5と最大のpt値を持っています。
最初に各被験者の最大のpt値を見つけ、次に、この観測値を別のデータフレームに入れるにはどうしたらよいでしょうか。結果として得られるデータフレームは、各被験者の最大のpt値のみを持っているはずです。
どのように解決するのですか?
ここでは
data.table
の解決策です。
require(data.table) ## 1.9.2
group <- as.data.table(group)
の最大値に対応する全てのエントリを残しておきたい場合、そのエントリは
pt
を各グループ内で保持したい場合。
group[group[, .I[pt == max(pt)], by=Subject]$V1]
# Subject pt Event
# 1: 1 5 2
# 2: 2 17 2
# 3: 3 5 2
の最初の最大値だけが欲しい場合、それは
pt
:
group[group[, .I[which.max(pt)], by=Subject]$V1]
# Subject pt Event
# 1: 1 5 2
# 2: 2 17 2
# 3: 3 5 2
この場合、データのどのグループ内にも複数の最大値が存在しないので、違いはありません。
関連
-
[解決済み] PandasでDataFrameの行を反復処理する方法
-
[解決済み] Pandas DataFrameの行数を取得する方法は?
-
[解決済み] pandas GroupByを使ってグループごとの統計情報(カウント、平均値など)を取得する?
-
[解決済み] 空のdata.frameを作成する
-
[解決済み] Rでtrycatchの書き方
-
[解決済み] 重複するインデックスを持つpandasの行を削除する
-
[解決済み】data.frameのカラムを因子から文字に変換する
-
[解決済み】データを長尺から長尺にリシェイプする方法
-
[解決済み] 各グループの最初の行を選択するにはどうすればよいですか?
-
[解決済み] グループ化されたデータから先頭行と最終行を選択する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
8.2 カマグラ(No.31〜No.40)
-
[解決済み] "エラーです。Rでテーマの書式を保存する際に「Don't know how to add RHS to the theme object」(テーマオブジェクトにRHSを追加する方法がわかりません)と表示されます。
-
[解決済み] Rで文字列から文字を削除する
-
[解決済み] R dataframeでNAの値をゼロに置き換えるには?
-
[解決済み] Rで2つのグラフを同じプロットで表示する
-
[解決済み] ggplotで凡例のタイトルを変更する方法
-
[解決済み] ggplot2 Rプロットで軸の制限を設定するには?
-
[解決済み] R および RStudio のコンソールをクリアする関数
-
[解決済み】RでCRANミラーを選択する方法
-
[解決済み] dplyrで各グループの最大値を持つ行を選択する方法は?[重複している]。