日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

别人运行的好好的R代码,到我这怎么就冲突了?

發布時間:2025/3/15 59 豆豆
生活随笔 收集整理的這篇文章主要介紹了 别人运行的好好的R代码,到我这怎么就冲突了? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

培訓時,同一段代碼,大家都運行的好好的,而你卻出現問題了,一般都是考慮包里的函數沖突了。這時需要一個個去排查到底是哪個函數發生了沖突,有沒有更好的辦法呢?

本文介紹一個包conflicted,可以列出所有沖突的函數,并可以設置優先使用哪個函數來處理沖突。

包的安裝

install.packages("conflicted") # 或 # install.packages("devtools") # devtools::install_github("r-lib/conflicted")

加載包后,存在沖突的函數會無法運行

并且提供了兩種解決方法,都在錯誤提示中。(學程序語言,看錯誤提示并且能理解錯誤提示很重要)

library(conflicted) library(dplyr)filter(mtcars, cyl == 8) #> Error: [conflicted] `filter` found in 2 packages. #> Either pick the one you want with `::` #> * dplyr::filter #> * stats::filter #> Or declare a preference with `conflicted_prefer()` #> * conflict_prefer("filter", "dplyr") #> * conflict_prefer("filter", "stats")

使用::指定使用哪個包的哪個函數

如下,雖然寫的字母多了些,但清晰明了。如果只用到了filter函數,dyplr包都不用顯示加載。

另外,在Rstuido中,還會有函數自動補全功能,輸入dplyr::后會列出這個包里面所有外部可用函數。

相對應的還有dplyr:::可以調用dplyr中沒有export出的函數。

dplyr::filter(mtcars, am & cyl == 8) #> mpg cyl disp hp drat wt qsec vs am gear carb #> 1 15.8 8 351 264 4.22 3.17 14.5 0 1 5 4 #> 2 15.0 8 301 335 3.54 3.57 14.6 0 1 5 8

或者設定優先級

推薦在加載包的同時,就對可能會發生沖突的函數,設置使用優先級

library(dplyr) # 優先使用dplyr里面的filter函數 conflict_prefer("filter", "dplyr") #> [conflicted] Will prefer dplyr::filter over any other packagefilter(mtcars, am & cyl == 8) #> mpg cyl disp hp drat wt qsec vs am gear carb #> 1 15.8 8 351 264 4.22 3.17 14.5 0 1 5 4 #> 2 15.0 8 301 335 3.54 3.57 14.6 0 1 5 8

列出所有存在沖突的函數

如果函數后面存在[],則表示根據默認優先級或認為設定的優先級采用對應包里的函數。

如果函數后面沒有[],如lag函數,使用時就需要按上面2種方式的一種設置具體調用或優先調用哪個包里的lag函數。

conflict_scout() #> 6 conflicts: #> * `filter` : [dplyr] #> * `intersect`: [dplyr] #> * `lag` : dplyr, stats #> * `setdiff` : [dplyr] #> * `setequal` : [dplyr] #> * `union` : [dplyr]

往期精品(點擊圖片直達文字對應教程)

機器學習

后臺回復“生信寶典福利第一波”或點擊閱讀原文獲取教程合集

總結

以上是生活随笔為你收集整理的别人运行的好好的R代码,到我这怎么就冲突了?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。