我写了一个小循环来找出哪个'bin'是一个数字,但我觉得它是相当pythonic而不是R.是否有更合适的方法来做到这一点,还是正常?
binLimits <- seq(0, 70, 10)
binNames <- c("A","B","C","D","E","F","G")
pos <- 45
# Find which bin pos is in
n <-0
for (i in binLimits){
if (pos < i){
pos.bin <- binNames[n]
break
}
n <- n+1
}
print (pos)
[1] "E"
Run Code Online (Sandbox Code Playgroud)
我很感激任何建议!
findInterval 是为了这个任务:
binNames[findInterval(45,binLimits)]
[1] "E"
Run Code Online (Sandbox Code Playgroud)
或者cut:
cut(45,binLimits,binNames)
[1] E
Levels: A B C D E F G
Run Code Online (Sandbox Code Playgroud)
这两个函数都是矢量化的,因此您不需要任何循环.
| 归档时间: |
|
| 查看次数: |
41 次 |
| 最近记录: |