1

残念ながら、私のコードは会社のプロジェクト用であるため共有できませんが、このエラーで完全に失われています。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 をインストールして更新しても、光沢のある問題は解決しないようですが、ローカルでも機能します。

4

2 に答える 2

4

インストール ガイドのこのセクションを参照してください: https://github.com/Rdatatable/data.table/wiki/Installation#windows

以下が含まれます:

Windows では、コンパイル済みコードを使用するパッケージをアップグレードする場合、アップグレードする前にすべての R セッションを閉じることが重要であると思われます。これにより、Windows が dll に対して保持しているすべてのロックが解除されます。念のため、再起動も行ってください。次に、新しい新鮮な R セッションを開きます。一部のユーザーは、R セッションが開始されるたびに data.table を自動的にロードする .Rprofile ファイルを持っています。.Rprofile ファイルがない可能性がありますが、ある場合はパッケージ (それ自体が data.table をロードする可能性があります) をロードし、一時的に .Rprofile の名前を変更するか、R の起動時に --vanilla を渡して .Rprofile が実行されないようにします。data.table がロードされていない新しい R セッションが 1 つ作成されたら、インストールに進みます。

インストールをテストするには 失敗した
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 がロードされると、DLL のバージョンが R レベル コードのバージョンと照合されるようになりました。これは、i) DLL が別の R セッションで使用されている場合、および ii) 新しいリリースの直後に発生する CRAN ソース バージョン > CRAN バイナリ バイナリ (R は、CRAN バイナリまでソースからインストールするようにユーザーに要求する) の場合に、Windows でのインストールの問題を検出するためです。利用可能です)。この状況は、パッケージの新しい R コードが古い DLL 内の古い C コードを呼び出す状態につながる可能性があります。R#17478、#3056。この壊れた状態は、うまくいけば、不一致によって引き起こされる奇妙なエラーが発生するまで続く可能性があります。そうしないと、誤った結果が黙って発生する可能性があります。この状況は、data.table だけでなく、コンパイルされたコードを含むすべての R パッケージに適用され、Windows 専用であり、長期にわたって使用されています。

そのため、Windows でこのような問題を検出するために最善を尽くしました。私が知る限り、 data.table は CRAN で唯一、自分自身をチェックするパッケージです。ロード時に自分自身をチェックします。私が考えることができるのは、サーバー上で動作しないと書いている場合、何日も何週間も開いている R セッションがあり、再起動していないということです。これが R/dll バージョンの一致チェックを回避できると私が考える唯一の方法です。

この問題を調査する際に、いつアップグレードしたか、どのように正確に (ソースまたはバイナリから) アップグレードしたかなどについて、できるだけ詳しく教えていただけますか。 DLL のロックが原因でこのような問題が発生するプラットフォーム。必ずsessionInfo()レポートに含めてください。

于 2019-10-25T00:01:37.010 に答える