[問題] 在建立的package中使用其它package功能

看板R_Language作者 (更更)時間10年前 (2014/12/18 21:50), 編輯推噓0(0010)
留言10則, 6人參與, 最新討論串1/1
[問題類型]: 程式諮詢 [軟體熟悉度]: 使用者 [問題敘述]: 有一個函數,現在想把它包裝成package 我參考板上《五分鐘學會「如何使用Rstudio建立R套件」》去建package 函數當中會把輸入的資料轉成data.table,再用到「:=」的取代功能 但都會跳出錯誤訊息說我的資料型態不是data.table無法使用「:=」指令 問題是我加上print去查看資料的class,它的確是data.table 而此問題在包裝成package前是不存在的,單純source這個code是可以跑的 我猜想是不是在package中調用到其它套件要另外調整? 想請問這情況何解? [程式範例]: ## f <- function(data){ data <- data.table(data) print(is.data.table(data)) data[,X:=20] } ## 例如說上面這個函數,我直接source就沒問題 但是如果弄成package就會顯示以下錯誤訊息: Error in `:=`(X, 20) : Check that is.data.table(DT) == TRUE. Otherwise, := and `:=`(...) are defined for use in j, once only and in particular ways. See help(":="). 但用is.data.table去測試,發現確實是data.table沒錯 (奇怪的是data.table跟is.data.table也是data.table套件的函數,但皆運作正常) [關鍵字]: Package、data.table -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 182.155.101.2 ※ 文章網址: http://www.ptt.cc/bbs/R_Language/M.1418910652.A.1CE.html

12/18 22:10, , 1F
在DESCRIPTION之中加上Depends: data.table呢?
12/18 22:10, 1F

12/18 22:20, , 2F
成功了! 初次建package有點搞不清狀況@@ 感謝!
12/18 22:20, 2F

12/18 22:53, , 3F
這個好像沒有辦法用namespace解
12/18 22:53, 3F

12/19 10:09, , 4F
不能用namespace嗎? 如果要引用的函數撞名怎麼辦?
12/19 10:09, 4F

12/19 11:12, , 5F
這是data.table的問題吧, 導致要用它不能只Imports
12/19 11:12, 5F

12/21 10:46, , 6F
不用namespace, pkg_a::a() pkg_b::b()
12/21 10:46, 6F

12/21 10:47, , 7F
pkg_b::a()
12/21 10:47, 7F

12/23 22:22, , 8F
可以借問:: 是什麼意思嗎?
12/23 22:22, 8F

12/23 23:27, , 9F
data.table的code感覺很有趣
12/23 23:27, 9F

12/24 00:28, , 10F
help("::")
12/24 00:28, 10F
文章代碼(AID): #1Kajky7E (R_Language)
文章代碼(AID): #1Kajky7E (R_Language)