提问者:小点点

如何从数据框创建唯一ID日期组合列


我有一组年度动物跟踪数据,我想为每个年度组合创建一个跟踪的独特天数列。我的数据如下所示:

'''r
ID<-c(1,1,1,2,2,2)
Year<-c(2004,2004,2005,2004,2005,2005)
Date<-(c("2004-01-23","2004-04-12","2005-06-13","2004-04-05","2005-01-12","2005-01-12"))
Date<-as.Date(Date)
df<-data.frame(ID,Year,Date)
'''r

我现在想做的是使用dplyr中的group_by()函数创建一个id年组合的数据框,并为跟踪的总唯一天数添加一列。例如,由于单个2在2005-01-12被跟踪了两次,这两列只能算作一列:

到目前为止,我已经设法使用复制()来查找哪些id年日期组合已被复制:

'''r
duplicates<-df[duplicated(df[,1:3]),]
'''r

但是我不知道如何使用该代码来创建新列,如果这是正确的方法的话。


共1个答案

匿名用户

dplyr中的总结函数可以轻松获取数字摘要。试试n_unique函数:

library(dplyr)
df %>%
  group_by(ID, Year) %>%
  summarize(“Unique Rows” = n_distinct(Date))