我的資料集在掃描中有幾個目擊/資料點,每個目擊都按當前掃描編號列出。我希望能夠撰寫一個代碼,將掃描 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])
}
uj5u.com熱心網友回復:
這個怎么樣
scans <- 1:21
scan_no <- ceiling(scans/3)
scan_no
# [1] 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 6 6 6 7 7 7
uj5u.com熱心網友回復:
你可以使用cut-
scan.no.1 = c(1, 1, 2, 2, 3, 3, 4, 4, 5, 6)
cut(scan.no.1, seq(0, max(scan.no.1), 3), labels = FALSE)
#[1] 1 1 1 1 1 1 2 2 2 2
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/419510.html
標籤:
