在R中是否有一种优雅的方法可以跳过空元素上的for循环?

在R中是否有一种优雅的方法可以跳过空元素上的for循环?,r,loops,for-loop,null,skip,R,Loops,For Loop,Null,Skip,我想循环遍历列表并使用其第n个元素,但列表可以为空: l <- list() for(i in 1:length(l)) a <- l[[i]] 有没有比检查长度(l)是否大于零更好的方法跳过for循环?您偶然发现了R中的“最佳实践”课程。通常,人们建议您将for循环编写为 for (i in seq_along(obj)) 而不是 for (i in 1:length(obj)) 正是因为这个原因seq_-along(list())将返回integer(0),完全跳过循环 如

我想循环遍历列表并使用其第n个元素,但列表可以为空:

l <- list()
for(i in 1:length(l)) a <- l[[i]]
有没有比检查长度(l)是否大于零更好的方法跳过for循环?

您偶然发现了R中的“最佳实践”课程。通常,人们建议您将for循环编写为

for (i in seq_along(obj))
而不是

for (i in 1:length(obj))
正是因为这个原因
seq_-along(list())
将返回
integer(0)
,完全跳过循环

如果您只有长度,也可以选择
seq_len
,长度可能为零:

for (i in seq_len(x))

其中
seq_len()
x=0时会做正确的事情,如果
x创建一个条件来检查它是否为空,则会返回一个错误
if(length(l)>0)执行此操作
这就是为什么
seq_沿途
1:length()
更可取的原因。我回答后发现了一个不错的副本,这将有助于更多的谷歌搜索找到有用的答案。
for (i in seq_len(x))