データフレーム内の各グループ内の最大値を抽出する【重複】。
2023-10-26 12:15:25
質問
グループ化変数("Gene")と値変数("Value")を持つデータフレームを持っています。
Gene Value
A 12
A 10
B 3
B 5
B 6
C 1
D 3
D 4
グループ化変数の各レベルについて、最大値を抽出したいと思います。したがって、結果はグループ化変数のレベルごとに1行のデータフレームになるはずです。
Gene Value
A 12
B 6
C 1
D 4
もしかして
aggregate
を使えばいいのでは?
どのように解決するのですか?
Rでこれを行うには多くの可能性があります。そのいくつかを紹介します。
df <- read.table(header = TRUE, text = 'Gene Value
A 12
A 10
B 3
B 5
B 6
C 1
D 3
D 4')
# aggregate
aggregate(df$Value, by = list(df$Gene), max)
aggregate(Value ~ Gene, data = df, max)
# tapply
tapply(df$Value, df$Gene, max)
# split + lapply
lapply(split(df, df$Gene), function(y) max(y$Value))
# plyr
require(plyr)
ddply(df, .(Gene), summarise, Value = max(Value))
# dplyr
require(dplyr)
df %>% group_by(Gene) %>% summarise(Value = max(Value))
# data.table
require(data.table)
dt <- data.table(df)
dt[ , max(Value), by = Gene]
# doBy
require(doBy)
summaryBy(Value~Gene, data = df, FUN = max)
# sqldf
require(sqldf)
sqldf("select Gene, max(Value) as Value from df group by Gene", drv = 'SQLite')
# ave
df[as.logical(ave(df$Value, df$Gene, FUN = function(x) x == max(x))),]
関連
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
R plot.new() のエラー : 図形の余白が大きすぎる
-
R read.table Error:埋め込まれたヌルが含まれているようです。
-
Rのexpand.grid()コマンド
-
[解決済み] Rの二乗偏差の総和の算出
-
[解決済み] Rでデータフレームに行を追加する方法は?
-
[解決済み] ggplot 2.0.0でのポイントサイズ
-
[解決済み] ベクトル中のある要素のインデックスを求めるR関数はありますか?
-
[解決済み】ggplot2で軸のタイトルやラベルの大きさを変更する。
-
[解決済み] [Solved] data.frameのカラムをベクトルに変換する?
-
[解決済み] 各グループの中で最大値を持つ行を選択する。