我有一组年度动物跟踪数据,我想为每个年度组合创建一个跟踪的独特天数列。我的数据如下所示:
'''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
但是我不知道如何使用该代码来创建新列,如果这是正确的方法的话。
dplyr
中的总结
函数可以轻松获取数字摘要。试试n_unique
函数:
library(dplyr)
df %>%
group_by(ID, Year) %>%
summarize(“Unique Rows” = n_distinct(Date))