如何限制应用函数中的计算?

How to limit the calculation in a sapply function?

几周前,我在根据另一个数据框的信息计算系数时遇到了问题 - 。 @PoGibas 提供的解决方案效果很好,但是,我必须在每行定义的时间后将计算限制为仅来自数据框 A 的 10 个下一个值。请你帮助我好吗? 我的代码看起来像@PoGibas 提议的那样:

sapply(1:length(time), function(x) sum(df1[x, which(foo >= time[x])]))

以下代码修改了您现有的代码,以便仅选择和汇总前 10 个条目(如果存在)。对于可能少于 10 个条目的情况,需要 na.rm = TRUE。在这种情况下,R 会自动用 NA.

填充 "empty" 索引
sapply(1:length(time), function(x) sum(df1[x, which(foo >= time[x])][1:10], na.rm = TRUE))