基于r中的唯一id在列中查找最小值

基于r中的唯一id在列中查找最小值,r,excel,minimum,R,Excel,Minimum,需要一些关于简单r命令的帮助来完成excel中通过数据透视完成的操作。 我有一个带有两个变量ID和日期的表。我需要一个命令,可以创建一个数据帧,其中有这些ID的唯一列表和对ID的最小日期 例如,假设我的数据帧是转置的(ID列表是第1列,日期2在第2列) 我需要一个数据框,提供 ID1 Mar01 ID2 Mar03 ID3 Mar05 这里的关键是使用as.Date作为日期数据类型,并使用其中给出的格式之一。格式类型请参见?format.Date。让我们创建一个输入表示例: df_inp

需要一些关于简单r命令的帮助来完成excel中通过数据透视完成的操作。 我有一个带有两个变量ID和日期的表。我需要一个命令,可以创建一个数据帧,其中有这些ID的唯一列表和对ID的最小日期

例如,假设我的数据帧是转置的(ID列表是第1列,日期2在第2列)

我需要一个数据框,提供

ID1  Mar01
ID2  Mar03
ID3  Mar05

这里的关键是使用
as.Date
作为日期数据类型,并使用其中给出的格式之一。格式类型请参见
?format.Date
。让我们创建一个输入表示例:
df_input以下是我对此的解释

您将从如下所示的
data.frame
开始。(我在
data.frame
中添加了一个额外的无序值,因此我的答案将与您的不同)

接下来,找到一个函数,该函数允许我们按照“ID”变量对这些日期进行排序。在base R中,
ave
可以非常方便地实现这一点

ave(as.numeric(Date2), mydf$ID, FUN = order)
# [1] 1 2 1 2 2 1
使用这些值将每个ID的第一个(最低)值的行子集(即,结果等于“1”)


你能把你实际拥有的数据贴出来吗?ID和日期是独立的向量吗
dput()
是您的朋友…请同时向我们展示您尝试过的代码以及它不起作用的原因。谢谢OPs示例具有重复id;我认为,他们想要选择数据的子集,而不仅仅是排序。既然已经有了一个例子,为什么还要再举一个新的例子呢?:)我没抓住那一点!但是可以通过
duplicated()
进行修复。我将等待OP的评论,然后再进一步发布。
mydf <- data.frame(ID = c("ID1", "ID1", "ID2", "ID2", "ID3", "ID3"),
                   Date = c("Mar 01", "Mar 02", "Mar 03", "Mar 04", "Mar 05", "Mar 04"))
mydf
#    ID   Date
# 1 ID1 Mar 01
# 2 ID1 Mar 02
# 3 ID2 Mar 03
# 4 ID2 Mar 04
# 5 ID3 Mar 05
# 6 ID3 Mar 04
Date2 <- strptime(mydf$Date, format="%b %d")  ## ASSUMES THE CURRENT YEAR
Date2
# [1] "2013-03-01" "2013-03-02" "2013-03-03" "2013-03-04" "2013-03-05" "2013-03-04"
ave(as.numeric(Date2), mydf$ID, FUN = order)
# [1] 1 2 1 2 2 1
mydf[ave(as.numeric(Date2), mydf$ID, FUN = order) == 1, ]
#    ID   Date
# 1 ID1 Mar 01
# 3 ID2 Mar 03
# 6 ID3 Mar 04