【发布时间】:2021-06-12 10:51:46
【问题描述】:
我喜欢为物种数据创建一些采样努力曲线。在某个时间段内重新采样的具有多个采样地块的几个研究区域在哪里。我的数据集和这个类似:
df1 <- data.frame(PlotID = c("A","A","A","A","A","B","B","B","B","B","C","C","C","C","C","D","D","D","D","D","E","E","E"),
species = c("x","x","x1","x","x1","x2","x1","x3","x4","x4","x5","x5","x","x3","x","x3","x3","x4","x5","x","x1","x2","x3"),
date = as.Date(c("27-04-1995", "26-05-1995", "02-08-1995", "02-05-1995", "28-09-1995", "02-08-1994", "31-05-1995", "27-07-1995", "06-12-1995", "03-05-1996", "27-04-1995", "31-05-1995", "29-06-1994", "30-08-1995", "26-05-1994", "30-05-1995", "30-06-1995", "30-06-1995", "30-06-1995", "30-08-1995", "31-08-1995", "01-09-1995","02-09-1995"),'%d-%m-%Y'),
area= c("A","A","A","A","A","A","A","A","A","A","B","B","B","B","B","B","B","B","B","B","C","C","C"))
我真的很想要一个输出,它可以为我提供额外的采样时间列,例如整个数据框为 0、10 天、30 天,但每个区域的时间应从 0 开始。我试过这个:
effort<-df1%>% arrange(PlotID, date,species) %>% group_by(area) %>%
mutate(diffDate = difftime(date, lag(date,1))) %>% ungroup()
但不知何故我的代码产生了废话? 有没有大神赐教?
T 最后我想实现下面这个例子。每个研究领域的矩阵列表,其中物种为行,但不以采样图为列,而是时间(以天为单位,显示采样工作量的增加)。该示例显示了 iNEXT 包中的数据集。但我坚持计算采样日期之间每个区域的采样天数。现在我只想要这个额外的列显示每个区域的采样事件与发现的物种之间的天数。我希望现在它更清楚一点?
编辑:这是我真实数据集中的日期的样子:
output from dput(head(my.data))
date= structure(c(801878400, 798940800, 780710400, 769910400, 775785600, 798940800), class = c("POSIXct", "POSIXt"), tzone = "UTC")
【问题讨论】:
-
您好,您希望“A”区域中的第一个样本为 0,第二个为该区域第一次采样后经过的天数,对吧?
-
不太清楚你想要完成什么。您努力的 diffDate 应该是当前样本和先前样本(仅按区域分组?)或当前和第一个样本(按区域分组?)之间的差异,您是否可以编写具有所需结果的模拟数据框。
-
您能否显示共享数据的预期输出?
-
对不起,我刚刚更新了我的问题。 @Pedro Alencar 每个区域的所有地块都应在每次采样事件的同一天进行采样。所以是的,每个区域的第一个采样日期应该是 0,接下来的每个日期都应该显示自开始日期以来经过的天数。