![](/img/trans.png)
[英]R Error in .jfindClass(as.character(driverClass)[1]) : java.lang.ClassNotFoundException
[英]R - Error in `:=`(variable, as.character(variable))
I'm trying to run an R script, which can be found here with the command plot_trace.R -m./log.model.csv./log.trace.csv
.
可以在此處找到兩個 csv 文件。
這會產生錯誤:
Error in `:=`(variable, as.character(variable)) :
Check that is.data.table(DT) == TRUE. Otherwise, := and `:=`(...) are defined for use in j, once only and in particular ways. See help(":=").
Calls: [ -> [.tbl_df -> check_names_df -> :=
最后但並非最不重要的是我的 sessionInfo() output:
R version 3.4.4 (2018-03-15)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 18.04.3 LTS
Matrix products: default
BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.7.1
LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.7.1
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
[5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
[7] LC_PAPER=en_US.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
[1] compiler_3.4.4
謝謝
更新
我發現這個腳本有兩個問題:
作者混合了來自tidyr
的函數和 class data.table
的變量。 這些函數可能會返回數據幀,並且在這些函數上使用data.table
語法會導致錯誤。 不幸的是,一些tidyr
函數在運行一個時可能會返回data.table
,但這似乎因tidyr
package 的版本而有很大差異。
來自tidyr
的unnest
function 有一個新接口。 該腳本無法與tidyr
版本 1.0.0 或更高版本一起使用。
以下是我為修復腳本而更改的行,使用 R 版本 3.6.1 和tidyr
版本 1.0.0:
trace.df <- as.data.table(trace.df)
trace.df <- unnest(trace.df, cols)
trace.df <- as.data.table(trace.df)
原始答案
我能夠在您提供的數據上運行腳本而沒有錯誤。 兩個都
Rscript --vanilla plot_trace.R -m ./log.model.csv ./log.trace.csv
和
chmod +x plot_trace.R
./plot_trace.R -m ./log.model.csv ./log.trace.csv
生產了以下 plot:
您可以在 RStudio 中逐步運行腳本以在每一步之后檢查 trace.df 的trace.df
嗎?
看起來unnest
調用正在創建不是數據表的東西。
在第 56 行嘗試添加:
trace.df <- as.data.table(trace.df)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.