在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))
?
答案 0 :(得分:1)
afaik,而不是来自apply循环内部。
您的两个选择是:
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)
将是正确的函数。
答案 1 :(得分:0)
您可以使用foreach
并输出dataframe
:
foreach(i = 1:4, .combine = rbind) %do% {
if (i == 3) {
data.frame(i = numeric())
} else {
data.frame(i=i)
}
}