【发布时间】:2012-08-07 08:07:27
【问题描述】:
在迭代集合的索引值时,以下代码在 SO 上很常见:
for (i in 1:length(x)) {
# ...
}
当集合为空时,代码行为异常,因为 1:length(x) 变为 1:0,这为 i 提供了值 1 和 0。
iterate <- function(x) {
for (i in 1:length(x)) {
cat('x[[', i, ']] is', x[[i]], '\n')
}
}
> iterate(c(1,2,3))
x[[ 1 ]] is 1
x[[ 2 ]] is 2
x[[ 3 ]] is 3
> iterate(c())
x[[ 1 ]] is
x[[ 0 ]] is
我记得当x 为空时,我看到一个优雅的习惯用法来定义一个没有元素的序列,但我不记得了。你用什么成语?
【问题讨论】: