i_l*_*ate 5 error-handling warnings r
我在 R 中编写了一个函数,它从数据库中提取数据并构建一个新表。
我的新表格标有摘录日期 ( build_date_0
)。
当我调试我的函数时,当我查看我的日期字符串时,我收到以下警告:
Browse[2]> build_date_0
[1] "2019-05-01"
Warning message:
In get(object, envir = currentEnv, inherits = TRUE) :
restarting interrupted promise evaluation
Run Code Online (Sandbox Code Playgroud)
问题:
这是我的代码:
build_account_db = function(conn = connection_object
,various_inputs = 24){
browser()
# create connection objects
tabs_1 = dplyr::tbl(conn,in_schema("DB_1","VIEW_W") # some table
# create date string
build_date_0 = lubridate::today() %>% as.character()
build_date = str_replace_all(build_date_0,"-+","_")
db_name_1 = paste0('DATABASE.tab_1_',build_date)
db_name_2 = paste0('DATABASE.tab_2_',build_date)
# build query
query_text_1 = tabs_1 %>% select(COL_1) # some query
query_text_1 = tabs_1 %>% select(COL_2)
# build new tables
create_db = DBI::dbSendQuery(conn_t,paste('CREATE TABLE',db_name_1,'AS (',query_text_1,') WITH DATA PRIMARY INDEX (ID_1)'))
create_db2 = DBI::dbSendQuery(conn_t,paste('CREATE TABLE',db_name_2,'AS (',query_text_2,') WITH DATA PRIMARY INDEX (ID_1)'))
}
Run Code Online (Sandbox Code Playgroud)
当我检查一个变量时,我可能会也可能不会收到这个警告(它会有所不同,即使我重新启动 R,并在清除的环境中再次运行我的代码)
Browse[2]> build_date
[1] "2019-02-28 11:00:00 AEDT"
Warning message:
In get(object, envir = currentEnv, inherits = TRUE) :
restarting interrupted promise evaluation
Run Code Online (Sandbox Code Playgroud)
我试过的:我读了这个问题,但更多的是关于抑制错误。还有,谷歌。
我发现这个关于 R 中的承诺和评估的链接对相关问题很有帮助:https://mailund.dk/posts/promises-and-lazy-evaluation/。我想知道build_date_0 = lubridate::today() %>% as.character()
如果您添加一个调用来build_date_0
解决承诺,是否会解决这个问题?祝你好运!
归档时间: |
|
查看次数: |
2186 次 |
最近记录: |