簡體   English   中英

R - `:=` 中的錯誤(變量,as.character(變量))

[英]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 的版本而有很大差異。

  • 來自tidyrunnest function 有一個新接口。 該腳本無法與tidyr版本 1.0.0 或更高版本一起使用。

以下是我為修復腳本而更改的行,使用 R 版本 3.6.1 和tidyr版本 1.0.0:

  • 第 56 行:添加了trace.df <- as.data.table(trace.df)
  • 第 64 行:更改為trace.df <- unnest(trace.df, cols)
  • 第 65 行:添加了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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM