<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          別人運行的好好的R代碼,到我這怎么就沖突了?

          共 2080字,需瀏覽 5分鐘

           ·

          2021-08-11 14:07

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

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

          包的安裝

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

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

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

          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")

          使用::指定使用哪個包的哪個函數(shù)

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

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

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

          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

          或者設定優(yōu)先級

          推薦在加載包的同時,就對可能會發(fā)生沖突的函數(shù),設置使用優(yōu)先級

          library(dplyr)
          # 優(yōu)先使用dplyr里面的filter函數(shù)
          conflict_prefer("filter", "dplyr")
          #> [conflicted] Will prefer dplyr::filter over any other package

          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

          列出所有存在沖突的函數(shù)

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

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

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


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

          機器學習

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


          瀏覽 142
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  操逼勉费看 | 黄色链接免费 | 亚州精品久久久久久久久 | 五月综合激情网 | 国产成人精品午夜精品 |