向R核心团队提出功能请求 [英] Proposing feature requests to the R Core Team

查看:138
本文介绍了向R核心团队提出功能请求的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

与R核心团队联系以提出功能请求的建议方式/工作流程是什么?

What's the recommended way/workflow of contacting the R Core Team in order to propose feature requests?

通过功能请求",我并不是简单地提出类似我希望看到XY在执行XY的功能,所以如果您继续为我实现这一点就太酷了",而是提出实际的代码代替.

By "feature requests" I do not simply mean firing something like "I'd like to see functionality XY doing XY, so it'd be cool if you'd go ahead and implement that for me" but proposing actual code instead.

我爱R,并且愿意贡献,共享代码和所有内容.但是有时我发现很难确切地确定 如何 ; ;-)我看过

I love R and am willing to contribute, share code and all. Yet sometimes I find it a bit hard to figure out just exactly how to contribute ;-) I've looked at the R Project Developer Page and used the r-devel mailing list a couple of times. Especially with respect to the latter, I've gotten the impression that it's not the right place / not desired to elaborate one's feature request with actual code (which can sometimes be more than just a two liner). So I wonder if there's a "better" or more "systematical" way in order to do that.

我被要求提供一个简短的例子:

I was asked to provide a short example:

我正在广泛使用S4参考类,并为我的对象实现了许多小的实用程序功能.一种这样的实用程序功能是某种重置"功能:

I'm using S4 Reference Classes extensively and implemented a lot of little utility functions for my objects. One such utility function is some sort of a "reset" functionality:

setRefClass(
    "A", 
    fields=list(a="numeric", b="character"),
    methods=list(
        reset=function(fields=NULL, ...){
            temp <- new("A")
            if(is.null(fields)){
                fields <- names(getRefClass("A")$fields())
            }
            sapply(fields, function(x){
                .self$field(name=x, value=temp$field(x))        
            })
            return(TRUE)
        }
    )
)

x <- new("A", a=1:10, b=letters[1:10])

x$a
x$b
x$reset(fields="a")

x$a
x$b

x$reset()
x$a
x$b

在我的哦,那是丢失的"列表上弹出的世界并不是最奇特的功能.另外,它可能是奇异"的功能,因此开发整个包装有时感觉就像用大锤砸开螺母一样.

Quite often, it's not the fanciest feature in the world that pops up on my "oh, that's missing" list. Plus it might be such a "singular" function that developing a whole package sometimes feels like cracking the nut with a sledgehammer.

推荐答案

这是一个很好的问题.虽然确实很喜欢R,但我发现它的开发模型有时令人沮丧.我会说最好的选择是

This is a great question. While really liking R a lot, I find its development model frustrating at times. I would say the best options are

  1. 将最初的想法(无需广泛的代码)发布到R-devel,看看您是否可以继续进行讨论/热情.您必须乐于推动:例如,几年前,我设法在sweep中加入了一些其他的错误检查功能(实际上它抱怨尺寸不匹配,而不是默默地返回错误的答案),但是只有在提出建议之后这个想法;等待一个星期;重新提出这个想法;发送一些原型代码;对它进行测试以确保它不会对性能造成影响;进一步的讨论...
  2. 将您的想法实现为附加软件包.如果您建议对核心R功能进行更改,那么这当然要困难得多(另一方面,这种更改也将更难被接受).另一方面,您可以在附加软件包中实现几乎任何所需的东西,并且它具有多个优点. (1)您的代码将可供所有人立即使用(如果您在R-forge,Rforge或CRAN上发布); (2)这是一种思想,无需R核心即可得到完善和完善的方法. (3)即使它从未在R-core中被接受,它也仍然会作为包装存在.
  3. 编辑:尝试找到一个现有的实用程序或"misc"程序包以作贡献(例如,我为Jim Lemon的plotrix程序包做出了贡献,该程序包是一些小型绘图实用程序的集合) ,然后与维护者/作者联系.
  4. 将您的愿望清单项目发布到R Bug跟踪器(带有代码附件等).但是,与使用选项#1或#2的情况相比,看到这些错误的人要少得多,因此,错误跟踪器中的漏洞很可能会消失,而您却一无所获.
  1. post the initial idea (without extensive code) to R-devel and see if you can get discussion/enthusiasm going. You have to be willing to push: for example, I managed to get some additional error-checking incorporated in sweep a few years ago (having it actually complain about mismatched dimensions rather than silently returning the wrong answer), but only after proposing the idea; waiting a week; re-raising the idea; sending some prototype code; testing it to make sure it didn't cause a performance hit; further discussion ...
  2. implement your idea as an add-on package. This is of course much harder if what you propose is a change to core R functionality (on the other hand, that kind of change will also be much harder to get accepted). On the other hand, you can implement just about anything you want in an add-on package, and it has several advantages. (1) Your code will be available for everyone to use immediately (if you post on R-forge, Rforge, or CRAN); (2) it is a way for the ideas to get developed and refined without buy-in from R core; (3) even if it never gets accepted in R-core, it will still be around as a package.
  3. edit: Try to find an existing utility or "misc" package to contribute to (for example, I have contributed to Jim Lemon's plotrix package, which is a compilation of small plotting utilities), and contact the maintainer/author.
  4. Post your wish-list items to the R bug tracker (with code attachments etc.). However, they will get seen by many fewer people than if you use options #1 or #2, and as a result are more likely to languish in the bug tracker without ever seeing the light of day.

这篇关于向R核心团队提出功能请求的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆