What is the meaning of : Warning in do.call(.f, args, envir = .env) : "what" must be a function or character string
What is the meaning of : Warning in do.call(.f, args, envir = .env) : "what" must be a function or character string
这是确切的消息:
Warning in do.call(.f, args, envir = .env) :
'what' must be a function or character string
在 Azure Databricks 环境中使用 R、spark 和 tidyverse 进行数据处理。
即使 运行 一个空的命令单元格也会出现此消息。
- 这可能来自 Databricks UI 中的集群配置吗?
我正在加载以下库:
# library(sparklyr)
# library(lubridate)
# library(dplyr)
# library(purrr)
# library(httr)
# library(jsonlite)
# library(tidyr)
# library(arrow)
# library(stringr)
# library(DBI)
# library("readxl")
我用
# if(!require(*library*)){
# install.packages(*"library"*)
# }
这个警告是我应该担心的还是我应该检查的?我不明白警告,也无法在 google.
上找到正确的文档
如果某些天才包维护者屏蔽了(~覆盖)重要的东西或使用(函数的)名称而不是 do.call
中的字符串,我会看看。
您可以像这样重现问题。
do.call(rbind, list()) ## using the name works as expected
# NULL
现在让我们屏蔽rbind
rbind <- 1
do.call(rbind, list()) ## using the name fails
# Error in do.call(rbind, list()) :
# 'what' must be a function or character string
瞧瞧。
这里使用字符串比较安全,不会失败
do.call('rbind', list())
# NULL
rm(rbind) ## unmask `rbind`.
解决方案 很棘手,因为您要加载大量库。不过,您可以执行以下操作:
- 关闭R-session,如果使用RStudio,取消选中工具>全局选项>常规>恢复.RData(也许取消选中已经解决了问题!)
- 检查
Renviron.site
和 Renviron.site
文件中的异常条目(可以在 Linux 上的 /etc/R/
文件夹中找到),或者启动 R -vanilla
会话
- 开始新的 R 会话
- 一个一个地加载每个
library
,直到发生错误
这是确切的消息:
Warning in do.call(.f, args, envir = .env) :
'what' must be a function or character string
在 Azure Databricks 环境中使用 R、spark 和 tidyverse 进行数据处理。 即使 运行 一个空的命令单元格也会出现此消息。
- 这可能来自 Databricks UI 中的集群配置吗? 我正在加载以下库:
# library(sparklyr)
# library(lubridate)
# library(dplyr)
# library(purrr)
# library(httr)
# library(jsonlite)
# library(tidyr)
# library(arrow)
# library(stringr)
# library(DBI)
# library("readxl")
我用
# if(!require(*library*)){
# install.packages(*"library"*)
# }
这个警告是我应该担心的还是我应该检查的?我不明白警告,也无法在 google.
上找到正确的文档如果某些天才包维护者屏蔽了(~覆盖)重要的东西或使用(函数的)名称而不是 do.call
中的字符串,我会看看。
您可以像这样重现问题。
do.call(rbind, list()) ## using the name works as expected
# NULL
现在让我们屏蔽rbind
rbind <- 1
do.call(rbind, list()) ## using the name fails
# Error in do.call(rbind, list()) :
# 'what' must be a function or character string
瞧瞧。
这里使用字符串比较安全,不会失败
do.call('rbind', list())
# NULL
rm(rbind) ## unmask `rbind`.
解决方案 很棘手,因为您要加载大量库。不过,您可以执行以下操作:
- 关闭R-session,如果使用RStudio,取消选中工具>全局选项>常规>恢复.RData(也许取消选中已经解决了问题!)
- 检查
Renviron.site
和Renviron.site
文件中的异常条目(可以在 Linux 上的/etc/R/
文件夹中找到),或者启动R -vanilla
会话 - 开始新的 R 会话
- 一个一个地加载每个
library
,直到发生错误