1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

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

        共 2080字,需瀏覽 5分鐘

         ·

        2021-08-11 14:07

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

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

        包的安裝

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

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

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

        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ù)自動補(bǔ)全功能,輸入dplyr::后會列出這個包里面所有外部可用函數(shù)。

        相對應(yīng)的還有dplyr:::可以調(diào)用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

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

        推薦在加載包的同時,就對可能會發(fā)生沖突的函數(shù),設(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ù)默認(rèn)優(yōu)先級或認(rèn)為設(shè)定的優(yōu)先級采用對應(yīng)包里的函數(shù)。

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

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


        往期精品(點(diǎn)擊圖片直達(dá)文字對應(yīng)教程)

        機(jī)器學(xué)習(xí)

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


        瀏覽 142
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            青草色天堂 | 秋霞电影一区二区三区 | 色艹艹艹 | 色噜噜狠狠色综合无码久久欧美 | 口述一女二男三p经过 | 大香蕉视频精品 | 操逼的网址 | 中国黄色视频免费看 | 国产偷窥在线观看 | 色色无码视频 |