R 将计数数据转换为二进制;“捕捉历史”;同时保留NAs和协变量

R 将计数数据转换为二进制;“捕捉历史”;同时保留NAs和协变量,r,R,我试图从耗竭/清除研究中获取(动物)计数数据,并将其转换为二进制捕获历史,以便在程序MARK中使用 数据具有针对每行的多个计数(即c1、c2等)和多个协变量(即cov1、cov2等)的结构。某些计数包含缺少的值 我想做的是给每只动物自己的“捕获历史”,包括1和0。因此,最终数据帧中的行数应等于所有行的计数之和。我遇到的问题是如何复制行,同时保留丢失的值(即NAs)。如果一行仅包含零或NAs,则可以忽略该行。但是,如果计数非零的行中有NAs,我希望在最终捕获历史记录中保留这些NAs 我使用dput

我试图从耗竭/清除研究中获取(动物)计数数据,并将其转换为二进制捕获历史,以便在程序MARK中使用

数据具有针对每行的多个计数(即c1、c2等)和多个协变量(即cov1、cov2等)的结构。某些计数包含缺少的值

我想做的是给每只动物自己的“捕获历史”,包括1和0。因此,最终数据帧中的行数应等于所有行的计数之和。我遇到的问题是如何复制行,同时保留丢失的值(即NAs)。如果一行仅包含零或NAs,则可以忽略该行。但是,如果计数非零的行中有NAs,我希望在最终捕获历史记录中保留这些NAs

我使用dput生成以下示例矩阵:

structure(c(3, 2, 1, 0, 0, 2, NA, 0, 0, NA, 1, NA, NA, 0, NA, 
1997, 1997, 1998, 1999, 1999), .Dim = c(5L, 4L), .Dimnames = list(
NULL, c("c1", "c2", "c3", "cov")))
该代码应生成以下内容:

# Original count data
######################
#      c1 c2 c3  cov #
# [1,]  3  2  1 1997 #
# [2,]  2 NA NA 1997 #
# [3,]  1  0 NA 1998 #
# [4,]  0  0  0 1999 #
# [5,]  0 NA NA 1999 #
######################
这就是我想要的标记输入。注意,我不需要保留原始矩阵的最后一行,因为没有观察到任何个体:

# Desired binary data
####################
#   1  0  0 1997   #   # Where the first 3 rows represent the count in [1,1]
#   1  0  0 1997   #
#   1  0  0 1997   #
#   0  1  0 1997   #   # These next two represent the count in [1,2]
#   0  1  0 1997   #
#   0  0  1 1997   #   # This is [1,3]
#   1 NA NA 1997   #   # These are [2,1]
#   1 NA NA 1997   #
#   1  0 NA 1998   #   # And the last is [3,1]
####################   
另一种可能的输入格式是将计数放在单独的列中。此输入和上述输入包含相同的信息:

# Desired binary data
####################
#   1  0  0 1997 3 #   # Where the first row represents the count in [1,1]
#   0  1  0 1997 2 #   # These next represents the count in [1,2]
#   0  0  1 1997 1 #   # This is [1,3]
#   1 NA NA 1997 2 #   # This is [2,1]
#   1  0 NA 1998 1 #   # And the last is [3,1]
####################  

NA
是重要的还是也可能是
0
呢?不幸的是,NA很重要。如果我将所有NA转换为0,那么将数据转换为这种格式不会有问题。