У меня есть функция R с более чем одним аргументом, и я использую функции dplyr.
Теперь я хочу применить этот UDF к кадру данных с пламенем.
Пример кода
myfun=function(objdf,x,y,k){
f <- function(x1,y1,x2,y2) {
d=(x2-x1) + (y2-y1)
}
search=function(df,x,y,k){
df1=data.frame(cbind(df,f(x,y,df$xx,df$yy)))
colnames(df1)=c(colnames(df),"val")
colnames(df1)
new_df=df1 %>% arrange(val) %>% head(k)
return(new_df)
}
searchwithk <- function(x,y,k) {
force(x,y,k);
function(df) search(df,x,y,k)
}
res <- spark_apply(objdf, function(df) {
searchwithk(df,x,y,k)
})
return(res)
}
#df= spark_dataframe
x=12.12
y=-74.5
k=5
result=myfun(df,x,y,k)
result
это дает мне длинную ошибку / неиспользуемый параметр в операторе force
Как решить эту проблему?