我创建了一个大量使用dplyr
的软件包,同时,这个软件包需要包含一个依赖于ddply
plyr
包的@import plyr
的不同函数。最初,我直接使用@importFrom plyr ddply ldply llply
,但它导致命名冲突,这破坏了我的其他功能。
所以我想我唯一的解决方案是包含必要的功能。因此,我添加了ldply llply
,因为ddply
中使用了dplyr
。然而,它失败了......
plyr
下加Imports
和Package: My ProdComp
Type: Package
Imports:
dplyr, plyr
import(dplyr)
importFrom(plyr,ddply)
importFrom(plyr,ldply)
importFrom(plyr,llply)
NAMESPACE(由ROXYGEN2生成)
#' @importFrom plyr ddply ldply llply
#'
#' @import dplyr
#'
#' @export
final_table <- ddply(product_type_subset,.(general_category, product_type, cas), summarise, Value = toString(maximum_weight_fraction[!is.na(maximum_weight_fraction)]))
实际剧本
Error in as.quoted(.variables) : could not find function "."
错误信息
var $elem = jQuery('#block-privatemsg-privatemsg-menu .content li.last a');
var text = $elem.text();
var matches = text.match('/d+/');
if (matches && matches.length) {
$elem.append('<span>' + matches[0] + '</span>');
}
那么关于如何做到正确的任何建议?
答案 0 :(得分:2)
.
位于plyr
,而不是dplyr
。
> dplyr::.
Error: '.' is not an exported object from 'namespace:dplyr'
> plyr::.
function (..., .env = parent.frame())
{
structure(as.list(match.call()[-1]), env = .env, class = "quoted")
}
<environment: namespace:plyr>
所以只需从plyr
和其他函数一起导入它。
答案 1 :(得分:2)
plyr
,ldply
,dlply
, llply
仍然不错,但如果您需要的只是ddply
,只需使用{{1}重写它即可}:
dplyr
相当于:
final_table <- ddply(product_type_subset,.(general_category, product_type, cas),
summarise,
Value = toString(maximum_weight_fraction[!is.na(maximum_weight_fraction)]))
这将是更快的代码并减少不必要的依赖(从维护的角度来看这非常好!)。
鉴于这是在一个包中,final_table <- group_by(product_type_subset, general_category, product_type, cas) %>%
summarize_(Value = toString(maximum_weight_fraction[!is.na(maximum_weight_fraction)]))
将为&#34;变量提供上述任何一个的可见绑定&#34; 警告。如果您想提交给CRAN,您需要使用标准评估版本,如下所示:
R CMD CHECK
我不知道一个简单的方法来进行final_table <- group_by_(product_type_subset, ~general_category, ~product_type, ~cas) %>%
summarize_(Value = ~toString(maximum_weight_fraction[!is.na(maximum_weight_fraction)]))
版本标准评估。对于plyr
参数,您可以使用字符向量而不是.()
,但我不知道.variables
位。