r - R 闪亮的应用程序在本地工作,但部署后,我得到一个错误,我相信 data.table: object 'CcopyNamedInList' not found
问题描述
不幸的是,我的代码不可共享,因为它是用于公司项目的,但我完全迷失了这个错误。我已经卸载并重新安装了 data.table 仍然没有修复。奇怪的是,我认为这个错误也会在本地发生,但事实并非如此!data.table 在本地工作正常。我想要一个可重现的例子,但我想不出来,因为它在本地工作!
编辑:好的,我想发生的事情如下
###Coerce to factors for clean 2x2's.
a_tab <- factor(data_fin$a_result_final,levels = c("Positive","Negative"))
t_tab <- factor(data_fin$t_result_final,levels = c("Positive","Negative"))
p_tab <- factor(data_fin$p_result_final,levels = c("Positive","Negative"))
tdf <- data.frame(a_tab,c_tab,p_tab)
#Create contingency tables
table <- table(tdf$a_tab,tdf$c_tab,dnn = c("Test 1","Test 2")) %>%
addmargins(margin = c(1,2),FUN = sum)
print('made B Table')
table_2 <- table(tdf$a_tab,tdf$c_tab,dnn = c("Test 1","Test 3")) %>%
addmargins(margin = c(1,2),FUN = sum)
print('made C Table')
Warning:Error: object 'CcopyNamedInList' not found
我无法共享数据,但这些因素来自一个包含多个数据条目的数据框,这些数据条目包括“正”、“负”和“无效”。希望这遵循更好的提问标准。
编辑:好的,所以我一直在重新启动 R 并运行您列出的说明`
test.data.table()
getDTthreads(verbose=TRUE):
omp_get_num_procs() 4
R_DATATABLE_NUM_PROCS_PERCENT unset (default 50)
R_DATATABLE_NUM_THREADS unset
omp_get_thread_limit() 2147483647
omp_get_max_threads() 4
OMP_THREAD_LIMIT unset
OMP_NUM_THREADS unset
RestoreAfterFork true
data.table is using 2 threads. See ?setDTthreads.
test.data.table() running: C:/Users/jkramp/Documents/R/win-library/3.6/data.table/tests/tests.Rraw.bz2
Running test id 2120.08
10 longest running tests took 56s (33% of 168s)
ID time nTest
1: 1438 8.58 738
2: 1835 8.38 1
3: 1648 6.17 91
4: 1652 5.74 91
5: 1650 5.71 91
6: 1223 5.39 728
7: 1848 4.39 1
8: 1644 4.30 91
9: 1642 4.19 91
10: 1646 4.12 91
endian==little, sizeof(long double)==16, sizeof(pointer)==8, TZ=America/Los_Angeles, locale='LC_COLLATE=English_United States.1252;LC_CTYPE=English_United States.1252;LC_MONETARY=English_United States.1252;LC_NUMERIC=C;LC_TIME=English_United States.1252', l10n_info()='MBCS=FALSE; UTF-8=FALSE; Latin-1=TRUE; codepage=1252', getDTthreads()='omp_get_num_procs()==4; R_DATATABLE_NUM_PROCS_PERCENT==unset (default 50); R_DATATABLE_NUM_THREADS==unset; omp_get_thread_limit()==2147483647; omp_get_max_threads()==4; OMP_THREAD_LIMIT==unset; OMP_NUM_THREADS==unset; RestoreAfterFork==true; data.table is using 2 threads. See ?setDTthreads.'
All 9643 tests in tests/tests.Rraw.bz2 completed ok in 00:02:48 elapsed (00:01:50 cpu) on Fri Oct 25 14:22:24 2019
install.packages('expss')
WARNING: Rtools is required to build R packages but is not currently installed. Please download and install the appropriate version of Rtools before proceeding:
https://cran.rstudio.com/bin/windows/Rtools/
Installing package into ‘C:/Users/jkramp/Documents/R/win-library/3.6’
(as ‘lib’ is unspecified)
trying URL 'https://cran.rstudio.com/bin/windows/contrib/3.6/expss_0.9.1.zip'
Content type 'application/zip' length 1867278 bytes (1.8 MB)
downloaded 1.8 MB
package ‘expss’ successfully unpacked and MD5 sums checked
The downloaded binary packages are in
C:\Users\jkramp\AppData\Local\Temp\Rtmpy49ttd\downloaded_packages
一切似乎都安装得很好。我也重新安装了expss。我确实收到了关于 Rtools 的警告,但我认为这可能是一个单独的问题?这是我闪亮日志的直接输出:
2019-10-25T21:44:01.961646+00:00 shinyapps[929961]: Warning: Error in data.table: object 'CcopyNamedInList' not found
2019-10-25T21:44:01.966388+00:00 shinyapps[929961]: 67: lapply
2019-10-25T21:44:01.966383+00:00 shinyapps[929961]: 75: data.table
2019-10-25T21:44:01.966388+00:00 shinyapps[929961]: 66: multi_cro
2019-10-25T21:44:01.966384+00:00 shinyapps[929961]: 74: make_datatable_for_cro
2019-10-25T21:44:01.966389+00:00 shinyapps[929961]: 65: cro
2019-10-25T21:44:01.966385+00:00 shinyapps[929961]: 73: elementary_cro
2019-10-25T21:44:01.966386+00:00 shinyapps[929961]: 72: FUN
2019-10-25T21:44:01.966386+00:00 shinyapps[929961]: 71: lapply
2019-10-25T21:44:01.966640+00:00 shinyapps[929961]: Error in data.table(cell_var, col_var, weight) :
2019-10-25T21:44:01.966641+00:00 shinyapps[929961]: object 'CcopyNamedInList' not found
2019-10-25T21:44:01.966391+00:00 shinyapps[929961]: 61: server [/srv/connect/apps/1143_r_dashboard/app.R#192]
2019-10-25T21:44:01.966389+00:00 shinyapps[929961]: 64: as.etable.table
该应用程序似乎在使用 expss 的过程中崩溃,但说这是一个 data.table 问题。安装和更新 expss 似乎并不能解决我的闪亮问题,但它再次在本地工作。
解决方案
请研究安装指南的这一部分:https ://github.com/Rdatatable/data.table/wiki/Installation#windows 。
其中包含:
在 Windows 上,当升级任何使用编译代码的包时,在升级之前关闭所有 R 会话似乎很重要。这会释放 Windows 在 dll 上持有的所有锁。可以肯定的是,也请重新启动。然后打开一个新的新 R 会话。一些用户有一个 .Rprofile 文件,该文件会在任何 R 会话启动时自动加载 data.table。您可能没有 .Rprofile 文件,但如果您有,并且它会加载任何包(它们本身可能会加载 data.table),请临时重命名 .Rprofile 或在启动 R 时传递 --vanilla 以防止它运行 .Rprofile。一旦你有一个没有加载 data.table 的新 R 会话,继续安装。
测试您的安装
require(data.table)
test.data.table()
如果test.data.table()
失败,那么您知道安装没有正常工作。Windows 上的典型问题包括功能缺失或参数不匹配。这些问题可能会导致崩溃。重新启动您的 Windows 计算机以清除所有 dll 锁定并再次重新安装 .zip。test.data.table()
是测试安装的可靠方法。全套超过 5,000 项测试在您的计算机上本地运行,时间不应超过 2 分钟。
“Windows 上的典型问题涉及功能缺失或参数不匹配”与您看到的错误位于同一区域:Error: object 'CcopyNamedInList' not found
另外,请参阅 2019 年 1 月 v1.12.0 的注释 1:
当 data.table 加载时,它现在会根据其 R 级代码的版本检查其 DLL 版本。这是为了在以下情况下检测 Windows 上的安装问题:i) DLL 正在被另一个 R 会话使用,并且 ii) CRAN 源版本 > CRAN 二进制二进制,这发生在新版本之后(R 提示用户从源安装直到 CRAN 二进制可用)。这种情况会导致包的新 R 代码调用旧 DLL 中的旧 C 代码的状态;R#17478,#3056。这种破坏状态可能会持续存在,直到您遇到由不匹配引起的奇怪错误。否则,错误的结果可能会悄无声息地出现。这种情况适用于任何具有编译代码的 R 包,而不仅仅是 data.table,仅限 Windows,并且是长期存在的。
所以我尽我所能在 Windows 上发现这样的问题。据我所知,data.table 是 CRAN 上唯一可以自我检查的包。它在加载时会检查自己。我所能想到的是,当你写它在服务器上不起作用时,你的意思是你有一个 R 会话已经打开了很多天或几周,而你还没有重新启动它。这是我认为可以逃避 R/dll 版本匹配检查的唯一方法。
当你调查这个问题时,你能否给我尽可能多的细节,比如你升级的时间,你是如何升级的(从源代码或二进制文件)等等。我假设你在 Windows 上,因为这是主要的由于 DLL 锁定而发生此类问题的平台。请始终包含sessionInfo()
在报告中。
推荐阅读
- c - fgets() 不等待来自控制台的输入
- java - 如何摆脱在 Ubuntu 中安装 SikuliX API 所需的 OpenCV
- docker - Hyperledger Fabric - 多主机网络 - Docker Swarm
- reactjs - 部署 React 项目后的空白页面
- java - 如果我真的不需要引用的数据,我应该懒惰地定义一个 JPA ManyToOne,还是只在我的实体中映射原始 id?
- docker - hcsshim::System::CreateProcess 期间遇到错误:Windows 系统调用失败:系统找不到指定的文件。(0x2)
- javascript - 找不到模块 '../../images/Logo.png'.ts(2307) 红色错误仍在显示
- r - 使用另一列值创建新列
- delve - 如何运行直到深入研究中的某行?
- c++ - 在 C++ 中使用数据库检查的登录循环