如何检查下标是否超出范围?

时间:2014-10-21 11:39:10

标签: r

如果我想检查我使用的变量是否存在

exists("variable")

在我正在制作的剧本中,我有时会遇到一个"下标超出范围的问题"运行后,然后我的脚本停止。在if语句中,我希望能够检查下标是否超出范围。如果结果是"是",则执行脚本的替代和平,如果"不是",那么只需按预期继续脚本。

在我的想象中,如果是列表,它看起来像是:

if {subscriptOutofBounds(listvariable[[number]]) == TRUE) {

## execute this part of the code
}
else {
## execute this part
}

R中是否存在类似的东西?

1 个答案:

答案 0 :(得分:0)

您可以将列表的长度与其他数字进行比较。例如,假设我有一个索引为3的列表,并想通过将它们与1到100的向量进行比较来进行检查。

lol <- list(c(1:10),
            c(100:200),
            c(3:50))
lol

check_out <- function(x) {
  maxi <- max(x)
  if (maxi > length(lol)) {

  #Excecute this part of code
  print("Yes")
}
else {
  #Excecute this part of code
  print("No")
}
}

num <- 1:100
check_out(num)

向量num的最大数目是100,并且您的列表只有3个索引(或长度= 3),因此它将超出列表的范围,然后返回