第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

如何在每個組中選擇具有最大值的行

如何在每個組中選擇具有最大值的行

FFIVE 2019-06-14 16:55:12
如何在每個組中選擇具有最大值的行目前我有一個問題如下。在每個主題存在多個觀察的數(shù)據(jù)集中,我希望在該數(shù)據(jù)集的子集中只選擇記錄的最大數(shù)據(jù)。例如,對于數(shù)據(jù)集,如下所示: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)被試1、2和3的最大pt值分別為5、17和5。首先,如何找到每個主題的最大pt值,然后將這個觀察結(jié)果放到另一個數(shù)據(jù)框架中?這意味著這個子集對于每個主題只有最大的pt值。
查看完整描述

3 回答

?
森林海

TA貢獻2011條經(jīng)驗 獲得超2個贊

這是一個data.table解決辦法:

require(data.table) ## 1.9.2group <- 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

在這種情況下,這并沒有什么區(qū)別,因為數(shù)據(jù)中的任何組中都沒有多個最大值。


查看完整回答
反對 回復(fù) 2019-06-14
?
桃花長相依

TA貢獻1860條經(jīng)驗 獲得超8個贊

最直觀的方法是在dplyr中使用group_by和top_n函數(shù)。

    group %>% group_by(Subject) %>% top_n(1, pt)

你得到的結(jié)果是

    Source: local data frame [3 x 3]
    Groups: Subject [3]

      Subject    pt Event        (dbl) (dbl) (dbl)
    1       1     5     2
    2       2    17     2
    3       3     5     2


查看完整回答
反對 回復(fù) 2019-06-14
?
蕪湖不蕪

TA貢獻1796條經(jīng)驗 獲得超7個贊

使用的較短的解決方案data.table:


setDT(group)[, .SD[which.max(pt)], by=Subject]

#    Subject pt Event

# 1:       1  5     2

# 2:       2 17     2

# 3:       3  5     2


查看完整回答
反對 回復(fù) 2019-06-14
  • 3 回答
  • 0 關(guān)注
  • 545 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號