根据R

时间:2017-01-03 16:37:27

标签: r reshape2

我有一个需要重塑的摄像机陷阱活动周期(二进制数据)的数据框。以下是数据帧的示例:

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日设置)。

我不确定如何继续执行此任务?

感谢任何帮助。 提前谢谢。

0 个答案:

没有答案