[問題] 創建package的問題

作者: clansoda (小笨)   2016-08-29 15:09:05
各位好,目前想要將工作上的有重複性的function寫成package好讓我不用
一直重覆一樣的事情,我目前的問題有兩個
第一個是encode的問題,我用我認為比較普遍的UTF-8格式儲存
並且創建package,這時候會出現
ERROR: unable to collate and parse R files for package
這個error message,而我只要轉成default的CP950就完全不會有這種情況
可是我這個CP950的編碼應該是windows的格式,如果我用這種編碼
那是不是mac或linux的平台就會使用不了呢?因為第一次寫package不太清楚
第二個問題是,我的function用到很多的其它package的function
我看很多package他在library的時候會順便地讀進其它的package
我google後,有很多提到import與depend兩種
有文章說import是比較安全且保守的方式
所以我就把我的namespace裏頭寫成這樣
http://imgur.com/a/97VBK ,不過source package且library了以後
使用function卻沒有如預期的有接入其他package的function
想請問我哪裡寫錯或者漏了什麼呢?
____________________________________________
我現在根據那篇PKG的文章,及樓下提到的roxygen2 package
已經寫出這樣
namespace http://imgur.com/a/4HuCU
description http://imgur.com/a/4PPlT
head part of function http://imgur.com/a/2Fvmw
但是建立新的package後,我依然無法跑放進去的function
就是我的認知上,export function是我想要我的function能被別人import才需要
若我自己使用的話,就不需要export function了對嗎?
那我現在要如何調整才能讓我放進去這個package的function能跑呢?
因為我現在呼叫這個function,他會說無法使用function %>%
因為我在裡面用了很多magrittr的pipe符號。
作者: Edster (Edster)   2016-08-29 17:40:00
寫在description這個檔裡面喔.
作者: clansoda (小笨)   2016-08-29 17:55:00
請問description不是只是介紹檔嗎? 我有寫import這欄在裏頭,可是我沒用語法寫進去,這個檔案要用語法寫?
作者: Edster (Edster)   2016-08-29 20:48:00
import: xml2, dplyr, httr 之類的
作者: Wush978 (拒看低質媒體)   2016-08-29 23:57:00
作者: cywhale (cywhale)   2016-08-30 07:24:00
This online book is great. u can easily use libraryroxygen2. Then devtools::document() will write in urNAMESPACE. u can maually add: importFrom(lib,"fun")I think # '@importFrom lib fun is in .R, not NAMESPAC
作者: clickhere (It's time to go home.)   2016-08-30 07:47:00
namespace不是這樣寫的.那些是給roxygen2用的.把 #' @ 拿掉既可.
作者: clansoda (小笨)   2016-08-31 09:32:00
感謝各位的回覆,我會仔細閱讀這些文章那請問encode會影響其他系統的使用嗎?我怕用windows編碼會導致linux和macos不能使用這些function
作者: Wush978 (拒看低質媒體)   2016-09-05 01:45:00
回到encode的問題,UTF-8是在windows會出問題,這很麻煩如果你不想上CRAN的話,可以用data來繞掉這個問題例如你的變數裡面有中文,你是先把字串向量放在data中
作者: cywhale (cywhale)   2016-09-05 14:55:00
推 "UTF-8"在windows會出問題..最近深有此感

Links booklink

Contact Us: admin [ a t ] ucptt.com