在这个论坛上的第一篇文章,所以随意轻松: - )
我正在尝试使用Rcpp / dplyr对数据帧进行排序。基于较早的 来自Romain的帖子 - 想法是使用OrderVisitor类,如本文所述。
order a dataframe by column in Rcpp
我的问题是我无法编译下面的帖子中定义的MyFunc代码。
C ++:
enter code here
#include <Rcpp.h>
#include <dplyr.h>
using namespace Rcpp;
using namespace dplyr;
// [[Rcpp::export]]
// [[Rcpp::depends(dplyr)]]
DataFrame myFunc(DataFrame data, CharacterVector names) {
OrderVisitors o(data, names ) ;
IntegerVector index = o.apply() ;
DataFrameVisitors visitors( data ) ;
DataFrame res = visitors.subset(index, "data.frame" ) ;
return res;
}
RStudio编译消息:
sessioninfo :: SESSION_INFO() ─会议信息────────────────────────────────────────────────────────────────────────────────────────────── ────────────────────────────────────────────────── ────────────────── 设定值
版本R版本3.4.1(2017-06-30) os Windows 7 x64 SP 1
system x86_64,mingw32
ui RStudio
语言(EN)
整理English_United States.1252
tz澳大利亚/悉尼
日期2018-06-13
─包裹───────────────────────────────────────────────────────────────────────────────────────────── ────────────────────────────────────────────────── ────────────────────────
包*版本日期来源
clisymbols 1.2.0 2017-05-21 CRAN(R 3.4.4)
sessioninfo 1.0.0 2017-06-21 CRAN(R 3.4.4)
with 2.1.2 2018-03-15 CRAN(R 3.4.4)
yaml 2.1.14 2016-11-12 CRAN(R 3.4.1)
RCPP :: sourceCpp(&#39; C:/temp/test.cpp') c:/RBuildTools/3.4/mingw_64/bin/g++ -I&#34; C:/PROGRA~1/R/R-34~1.1/include" -DNDEBUG -I&#34; C:/PROGRA~1/R/R-34~1.1/library/Rcpp/include" -I&#34; C:/PROGRA~1/R/R-34~1.1/library/dplyr/include" -I&#34; C:/PROGRA~1/R/R-34~1.1/library/BH/include" -I&#34; C:/温度&#34; -I&#34; d:/Compiler/gcc-4.9.3/local330/include" -O2 -Wall -mtune = core2 -c test.cpp -o test.o 在C:/PROGRA~1/R/R-34~1.1/library/dplyr/include/dplyr.h:4:0中包含的文件中, 来自test.cpp:2: C:/PROGRA~1/R/R-34~1.1/library/dplyr/include/dplyr/main.h:11:19:致命错误:plogr.h:没有这样的文件或目录 #包括 ^ 编译终止。 make:*** [test.o]错误1 警告信息: 运行命令&#39; make -f&#34; C:/PROGRA~1/R/R-34~1.1/etc/x64/Makeconf" -f&#34; C:/PROGRA~1/R/R-34~1.1/share/make/winshlib.mk" SHLIB_LDFLAGS =&#39; $(SHLIB_CXXLDFLAGS)&#39; SHLIB_LD =&#39; $(SHLIB_CXXLD)&#39; SHLIB =&#34; sourceCpp_2.dll&#34; WIN = 64 TCLBIN = 64 OBJECTS =&#34; test.o&#34;&#39;有状态2 Rcpp :: sourceCpp中出错(&#34; C:/temp/test.cpp"): 构建共享库时出现错误1。
所以我想知道的是:
知道如何正确编译上面的代码吗? plogr有什么问题吗?
使用Rcpp实现相同结果的任何其他有效方法?
感谢。
MSW
答案 0 :(得分:1)
正如Ralf所说,您可能需要添加其他依赖项。
在这种情况下,您需要以下所有内容:// [[Rcpp::depends(dplyr, plogr, bindrcpp)]]
。