提问人:C. Guff 提问时间:4/19/2023 最后编辑:C. Guff 更新时间:4/19/2023 访问量:37
循环函数,直到两个数据集之间的长度在 R 中相等
Looping the function until the length between two dataset are equal in R
问:
在不同的数据集上应用函数时,我意识到对于具有相应观察量的数据集,输出中不包括一些观察值(请参阅前面的问题st_network_blend不包括所有点)。 因此,我的想法是过滤原始数据集并重新启动操作,将第二个输出绑定到第一个输出,只要不包括观测值,就可以重复该过程。
我已经尝试了下面的功能。我在原始数据帧上应用我创建的函数。之后,输出与原始输出之间的差异被提取为 。如果向量的长度为 0,则输出不需要校正。如果长度大于 0,则循环必须开始过滤、应用代码、绑定输出并评估与原始数据帧的差异。distfn()
Diff
Diff
Distloop <- function(dfInj){
dist = distfn(dfInj)
Diff = setdiff(Inj$ID, dist$ID)
x <- as.numeric(length(Diff))
if(as.numeric(length(Diff)) == 0){
dist
} else {
while(x != 0){
dfInjb <- dfInj %>% filter(ID == Diff)
distb <- distfn(dfInjb)
dist <- dist %>% rbind(distb)
Diff = setdiff(Inj$ID, dist$ID)
x <- as.numeric(length(Diff))
}
}
}
问题出在功能上...while
P.S.:不幸的是,由于说明问题所需的数据集的大小,我无法加入任何可重复的例子。 不过,您可以看一下该问题中给出的示例st_network_blend该示例不包括所有要点
答: 暂无答案
评论
while
}; dist; }; }