我有一个需要重塑的摄像机陷阱活动周期(二进制数据)的数据框。以下是数据帧的示例:
df <- data.frame(
ID = c("A1","A2","B1","B2","C1","C2","D1","D2","E1","E2"),
a = c(1,1,1,1,1,0,1,1,NA,1),
b = c(1,0,1,1,1,0,1,1,1,1),
c = c(1,0,1,1,1,1,1,1,1,1),
d = c(1,0,1,1,1,0,1,1,1,1),
e = c(1,1,1,1,1,0,1,1,1,1)
)
colnames(df)[2:6] <- c("01/11/2016", "02/11/2016", "03/11/2016",
"04/11/2016", "05/11/2016")
> df
ID 01/11/2016 02/11/2016 03/11/2016 04/11/2016 05/11/2016
1 A1 1 1 1 1 1
2 A2 1 0 0 0 1
3 B1 1 1 1 1 1
4 B2 1 1 1 1 1
5 C1 1 1 1 1 1
6 C2 0 0 1 0 0
7 D1 1 1 1 1 1
8 D2 1 1 1 1 1
9 E1 NA 1 1 1 1
10 E2 1 1 1 1 1
ID列表示每个摄像头。日期列表示进行摄像机捕获调查的日期。行值为1表示该特定日期的特定相机处于活动状态(即工作)。行值为0表示该特定日期的特定摄像机处于非活动状态(即不工作)。 NA表示该特定日期的特定摄像机尚未设置或已经检索(NA也可能出现在数据帧的末尾;此示例中未显示)。
我需要将数据帧重新整形为以下内容:
ID Setup_date Retrieval_date Problem1_from Problem1_to Problem2_from Problem2_to
A1 01/11/2016 05/11/2016 NA NA NA NA
A2 01/11/2016 05/11/2016 02/11/2016 04/11/2016 NA NA
B1 01/11/2016 05/11/2016 NA NA NA NA
B2 01/11/2016 05/11/2016 NA NA NA NA
C1 01/11/2016 05/11/2016 NA NA NA NA
C2 01/11/2016 05/11/2016 01/11/2016 02/11/2016 04/11/2016 05/11/2016
D1 01/11/2016 05/11/2016 NA NA NA NA
D2 01/11/2016 05/11/2016 NA NA NA NA
E1 02/11/2016 05/11/2016 NA NA NA NA
E2 01/11/2016 05/11/2016 NA NA NA NA
这样每行仍代表一个摄像机(列名称为#34; ID&#34;),以及其他名称:
&#34; Setup_date&#34; - 表示首次设置特定摄像机的日期。
&#34; Retrieval_date&#34; - 表示检索特定摄像机的日期。
&#34; Problem1_from&#34; - 表示特定摄像机编码为0的开始日期。
&#34; Problem1_to&#34; - 表示特定摄像机编码为0的结束日期。
摄像机可以在多个场合编码为0,如相机C2所示。这将导致另一个&#34; ProblemX_from&#34;和&#34; _to&#34;如上例所示。另请注意相机E1&#34; Setup_date&#34;比其他人晚了一天,因为这台相机在2016年11月1日编码为NA(即它仅在2016年11月2日设置)。
我不确定如何继续执行此任务?
感谢任何帮助。 提前谢谢。