繁体   English   中英

sqldf和R代码库的可维护性[关闭]

[英]sqldf and maintainability of R code base [closed]

如果一个人在R中构建一个实质性的,组织范围的代码库,那么依赖sqldf包作为数据修改任务的默认方法是否可以接受? 或者,最好的做法是尽可能依赖具有R特定语法的操作? 通过依赖sqldf,人们在其R代码库中引入了大量不同的语法SQL。

我在具体考虑可维护性和风格方面提出这个问题。 我搜索了现有的R风格指南,但没有找到关于这个主题的任何内容。

编辑:为了澄清我所关注的工作流程,考虑一个数据修改脚本充分利用sqldf,如下所示:

library(sqldf)
gclust_group<-sqldf("SELECT clust,SUM(trips) AS trips2
                FROM gclust
                GROUP BY clust")

gclust_group2<-sqldf("SELECT g.*, h.Longitude,h.Latitude,h.withinss, s.trips2
                 FROM highestd g
                 LEFT JOIN centers h
                 ON g.clust=h.clust
                 LEFT JOIN gclust_group s
                 ON g.clust=s.clust")

这样的脚本可以继续多行。 (对于那些熟悉Hadoop和PIG的人来说,这种风格实际上类似于PIG脚本)。 大多数工作都是使用SQL语法完成的,尽管有避免复杂子查询的好处。

写功能。 具有明确名称的功能描述其目的。 记录它们。 写测试。

函数是否包含sqldf部分,或使用dplyr ,或使用裸R代码,或调用Rcpp是否与该级别无关。

但是如果你想尝试从sqldf更改为dplyr ,重要的是你有一个可以进行实验的稳定平台,这意味着定义良好的函数和一组好的测试。 也许在一个函数中存在一个瓶颈,如果用dplyr执行它可能会快100倍? 太棒了,你可以用两者来描述和测试代码。

您甚至可以分支您的代码并在您的修订控制系统中拥有一个sqldf分支和一个dplyr分支(您使用的是RCS,对吧?)并且并行工作直到您获得胜利。

如果您的代码库有充分的文档和测试,那么从可维护性的角度来看,如果您在R代码中引入其他的语法,那么这无关紧要。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM