制作R循环以更恰当地找到箱子R.

Dan*_*iel 1 r

我写了一个小循环来找出哪个'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)

我很感激任何建议!

Jam*_*mes 5

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)

这两个函数都是矢量化的,因此您不需要任何循环.