[英]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.