我正在分析收集的有关鸟类行为的数据,并想计算海鸟在觅食潜水(潜入水下追鱼)之间游荡(否则被认为是休息)时停留在水面上的时间。目前数据就是这种形式。
structure(list(alt_id = c(10L, 10L, 12L, 12L, 12L, 12L, 13L,
13L, 13L, 13L, 13L, 13L, 13L, 13L, 13L, 13L, 2L, 2L, 2L, 2L),
act = c("l", "d", "l", "d", "l", "d", "l", "d", "l", "d",
"l", "d", "l", "d", "l", "d", "l", "d", "l", "d"), action_time = c("15",
"0", "5", "24", "10", "0", "43", "28", "16", "37", "9", "35",
"15", "34", "11", "0", "12", "33", "15", "33")), .Names = c("alt_id",
"act", "action_time"), row.names = c(NA, 20L), class = "data.frame")
该数据子集包含 4 个不同个体的行为信息(由唯一 ID 号索引)。我需要首先评估数据框,以便我只考虑个体鸟类的行为。为此,我需要确保我正在考虑的行正下方的 ID 号是相同的。然后我需要隔离小鸟闲逛的时间(在数据库中用“l”表示)。然后我想确保它在游荡期前后都下降(用“d”表示)。通过这样做,我确保我不会将鸟只是愉快地漂浮在水面上的时间算作潜水之间的游荡时间,因为它们可能会在它们吃饱后一次数小时这样做。
理想情况下,这将在 for 循环或其他表达式中运行,允许我一次运行所有 4,000 多行数据,创建一个懒散 (l) 次向量,然后我可以使用它来计算平均值、sd 等。
关于如何做到这一点的任何提示?