NULL值在foreach循环R中作为符号地址错误传递
NULL value passed as symbol address error in foreach loop R
我以前从来没有遇到过这个问题,但是当我尝试在 R 中使用 foreach 循环时,我 运行 遇到了这个错误:“{ 中的错误:任务 1 失败 - “NULL 值作为符号传递地址".
我几乎不可能生成一个小型的、可重现的示例(我试过了!),因为我正试图从巨大的栅格中提取数据并从该数据制作 csv 文件。但是,这是我的代码。
bi_2021 <- rast('G:\GridMet_Yearly\bi_2021.nc')
cl <- makeCluster(2)
registerDoParallel(cl)
r = 1
foreach (r=1:10, .packages = c('tidyverse','lubridate')) %dopar% {
rc <- row_char[r]
cc <- col_char[r]
ce <- cell_char[r]
rn <- row_num[r]
cn <- col_num[r]
fname <- paste0('G:/GridMet_Cells_RawData/row',rc,'_col',cc,'_cell',ce,'.csv')
data_df <- data.frame(read_csv(fname, show_col_types = FALSE)) # read previous data in
data_df <- data[which(year(data$Date) < 2021),]
# add rows for 2021 daily data
data_df[15342:15673,] <- NA
data_df$Date[15342:15673] <- seq(as.Date('2021-01-01'),as.Date('2021-11-28'),'days')
data_df$bi[15342:15673] <- as.numeric(bi_2021[rn,cn,][1:332]) # THIS IS THE LINE IT DOESN'T
LIKE!
write_csv(final_df,paste0('G://GridMet_Cells_RawData2//row',rc,'_col',cc,'_cell',ce,'.csv'))
rm(data_df,cc,ce,cn,fname,rc,rn)}
这是数据示例。
Date bi erc etr_alfalfa fm100 fm1000 etr_grass pp rhmax rhmin shum srad ud tmin tmax vpd us
<date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 1979-01-01 22 16 0.1 18.2 24.5 0.1 0 74.4 38.7 0.14 78.1 232 -40.8 -26.8 20 2.5
出于某种原因,它不允许我从栅格中提取数据,并将其放入每个变量的特定行中。关于为什么要这样做以及如何解决的任何想法?当它没有放在 foreach 循环中时它工作正常。谢谢