【发布时间】:2022-01-22 22:52:52
【问题描述】:
我的数据集在扫描中有几个目击/数据点,每个目击都按当前扫描编号列出。我希望能够编写一个代码,将扫描 1、2、3 计为扫描 1,将扫描 4、5、6 计为扫描 2,依此类推。
这是我目前的结果,包括我的尝试结果Sample dataset。
一个小的数据框示例:
whales <- data.frame(rubbing.beach = c(away.from.beach, away.from.beach, away.from.beach, away.from.beach, away.from.beach, away.from.beach, away.from.beach, away.from.beach, away.from.beach, away.from.beach),
scan.no.1 = c(1, 1, 2, 2, 3, 3, 4, 4, 5, 6))
我想将 scan.no.1 列设置为 scan.no 列。我使用下面的代码生成 scan.no 列,但这不是我想要的结果。
使用上面的 scan.no.1,我想要一个具有以下结果的 scan.no 列:
scan.no = c(1, 1, 1, 1, 1, 1, 2, 2, 2, 2).
scan.no=rep(NA, nrow(whales));
scan.no[1:3]=1;
for (i in 3:(nrow(whales)-1)) {
scan.no[i+1] = ifelse(whales$scan.no.1[i+1] != whales$scan.no.1[i],
scan.no[i]+1, scan.no[i])
}
【问题讨论】: