[问题] 创建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