R 在吃块金比赛中首次出现年龄问题

R 在吃块金比赛中首次出现年龄问题,r,R,我只有一个简单的问题, 在数据框中,获取每个人首次出现的年龄的最快方法是什么?(本质上,我们需要根据每个人第一次参与的时间提取他们独特的价值观) 有什么想法吗?我们可以使用data.table使用unique和by选项获得最快的提取 unique(df2, by = "Person") 或使用行索引进行提取 setDT(df2)[df2[, .I[1L],Person]$V1] 更新 如果我们需要每个人的最低“年龄”行 setDT(df2)[, .SD[which.min(Age)], Pe

我只有一个简单的问题, 在数据框中,获取每个人首次出现的年龄的最快方法是什么?(本质上,我们需要根据每个人第一次参与的时间提取他们独特的价值观)


有什么想法吗?

我们可以使用
data.table
使用
unique
by
选项获得最快的提取

unique(df2, by = "Person")
或使用行索引进行提取

setDT(df2)[df2[, .I[1L],Person]$V1]
更新 如果我们需要每个人的最低“年龄”行

setDT(df2)[, .SD[which.min(Age)], Person]

或者如果我们更喜欢dplyr,那么

library(dplyr)
df2 %>% 
   group_by(Person) %>%
   slice(1L)
更新
或者不使用任何外部库

df2[with(df2, Age==ave(Age, Person, FUN = min)),]

min
一起使用
aggregate
。首次出现的年龄是指一个人参与的最年轻年龄,即他们的最低年龄?是的,我的意思是,在这之后是否可以提取年龄作为列表?还是有一个直接的函数来代替库?顺便说一句,你的回答很有启发性,谢谢。@Roryme是的,这是可能的,但根据你的评论,你想要的是每人的最低“年龄”还是第一排?非常令人困惑我实际上给了你一票。我只是选择了你的答案。我想人们只是不喜欢整个吃金块比赛,所以他们疯狂地否决了所有投票:(.就像我真的要在真正的吃金块比赛中使用这些功能一样。吃金块的人也是人!
df2 %>%
    group_by(Person) %>%
    filter(Age == min(Age))
df2[with(df2, Age==ave(Age, Person, FUN = min)),]