当在 R 中使用 apply 时,有没有办法让它跳过向量元素NULL
,这样当f(x2,y2)
未定义时apply(x,1,f,y)
返回
c(f(x1,y1),f(x1,y2),f(x2,y2))
而不是
c(f(x1,y1),f(x1,y2),NULL,f(x2,y2))
?
afaik,而不是来自应用循环内部。
您的两个选择是:
apply(x[index.x], 1, f, y[index.y])
得到结果后过滤结果。例如
res <- apply(x,1,f,y)
res <- res[!is.na(res)]
如果使用后一个选项,则取决于您的函数的输出是什么,is.null(res)
或者is.na(res)
将是正确使用的函数。
您可以使用foreach
并输出 a来做到这一点dataframe
:
foreach(i = 1:4, .combine = rbind) %do% {
if (i == 3) {
data.frame(i = numeric())
} else {
data.frame(i=i)
}
}