所以我必須創建一個函式來進行分箱并計算不同的休息時間。所以我現在擁有的是:
binfunc <- function(numbers, breaks) {
.bincode(numbers, breaks, right = TRUE, include.lowest = FALSE)
}
示例向量的輸出將是:
numbers1 <- c(20, 70, 14, 30)
breaks1 <- c(youth = 18, adult = 40, elder = Inf)
binfunc(numbers1, breaks1)
[1] 1 2 NA 1
但是我想要作為輸出的是向量中計算的不同中斷,例如:
c(youth = 1, adult = 2, elder = 1)
提前致謝
uj5u.com熱心網友回復:
剪切已存在,添加表
> table(cut(numbers1,c(0,breaks1),labels=names(breaks1),right=T,include.lowest=F))
youth adult elder
1 2 1
uj5u.com熱心網友回復:
這是另一種選擇:
binfunc <- function(numbers, breaks){
rowSums(sapply(numbers, \(x) (x <breaks[order(breaks)]) )) |>
(\(d) c(d[1], diff(d)))()
}
numbers1 <- c(20, 70, 14, 30)
breaks1 <- c(youth = 18, adult = 40, elder = Inf)
binfunc(numbers1, breaks1)
#> youth adult elder
#> 1 2 1
numbers2 <- c(20, 70, 14, 30, 10, 10, 25, 40, 11, 55)
breaks2 <- c(youth = 18, adult = 40, elder = Inf, mid = 25)
binfunc(numbers2, breaks2)
#> youth mid adult elder
#> 4 1 2 3
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/527695.html
標籤:r分箱
