亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在dataframe中提取每個組內的最大值

在dataframe中提取每個組內的最大值

元芳怎么了 2019-06-20 10:19:58
在dataframe中提取每個組內的最大值我有一個具有分組變量(“Gene”)和一個值變量(“value”)的數據框架:Gene   Value A      12A      10B      3B      5B      6C      1D      3D      4對于分組變量的每個級別,我希望提取最大值。因此,結果應該是一個數據幀,每級分組變量有一行:Gene   Value A      12B      6C      1D      4能aggregate玩這個把戲?
查看完整描述

3 回答

?
飲歌長嘯

TA貢獻1951條經驗 獲得超3個贊

在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))),]


查看完整回答
反對 回復 2019-06-20
  • 3 回答
  • 0 關注
  • 3523 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號