我有一个函数看起来像这样:的R - 传递两个变量来使用功能lapply
Func_Daily <- function(DATAdir, DATE, RERUN){
sum_dbefore <- Func_day_before(DATE)
files <- Func_getFiles(DATE)
if(length(files) > 0){
data <- mclapply(files, function(x) Func_data_read(x), mc.cores = nCores)
print(data)
}
}
主要程序传递所需的变量Func_Daily()
。 Func_Daily()
从函数Func_getFiles()
获取文件夹内的文件,并将其传递给函数Func_data_read()
以读取和更改该文件夹内的每个文件。 现在的问题是,我有一个计算值(sum_dbefore
)其他功能,我需要的是Func_data_read()
函数内部:
Func_data_read <- function(file){
if(length(file) > 0){
data <- lf_getNetCDF(file)
data$RR[1] <- data$RR[1]+sum_dbefore
data$RR_acc <- cumsum(data$RR)
}else{
print(paste("no files on", DATE))
}
return(data)
}
有没有一种方法里面lapply与files
到Func_data_read()
一起传递价值在函数内部使用两个变量并将值返回以将其保存到数据中Func_Daily
? 我想有一个简单的方法来使用lapply做到这一点,但到目前为止我无法弄清楚如何。如果可能的话,我不想重建整个设置,因为它连接到脚本内部的一些功能。因此,使用lapply来传递sum_dbefore
和files
并在Func_data_read()
内使用它们将是我的首选方式。
你试过'mcmapply()'吗? – hrbrmstr
没有没有。我会看看'mapply()' – BallerNacken
@BallerNacken:如果'sum_dbefore'对于所有'files'都是**不一样**,那么@hrbrmstr有关'mcmapply()'的注释是正确的方法。 – aichao