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