Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include < Rcpp.h >
- #include < RcppEigen.h >
- #include <Eigen/Dense>
- #include <iostream>
- #include <string>
- using Eigen::MatrixXd;
- using namespace std;
- using namespace Rcpp;
- using namespace RcppEigen;
- using namespace Eigen;
- RcppExport SEXP MatOp(SEXP Xr, SEXP Yr, SEXP Kr)
- {
- MatrixXd X = RcppEigen::as<MatrixXd>(Xr);
- MatrixXd Y = RcppEigen::as<MatrixXd>(Yr);
- string K = Rcpp::as<string>(Kr);
- int n=X.rows();
- int p=X.cols();
- int nY=Y.cols();
- MatrixXd I(n,n);
- I.setIdentity(n,n);
- double SSE=(Y.transpose()*(I-X*(X.transpose()*X).inverse()*X.transpose())*Y).determinant();
- if(Criteria=="k1")
- return (wrap(n*log(SSE/n)+log(n)*p));
- if(Criteria=="k2")
- return (wrap(n*log(SSE/n)+(2*p*nY*n+nY*(nY+1))/n-2/n+n+2));
- }
- CRT_R <- function(Xr,Yr,criteriar) {
- .Call('CRTRCppEigen',Xr,Yr,criteriar,PACKAGE = 'CRTRCppEigen')
- }
- Rcmd INSTALL --build CRTRCppEigen
- PAUSE
- Rcmd build CRTRCppEigen
- pause
- Rcmd INSTALL CRTRCppEigen
- PAUSE
- Rcmd check CRTRCppEigen
- PAUSE
- C:Windowssystem32;C:Windows;C:WindowsSystem32Wbem;C:WindowsSystem32WindowsPowerShellv1.0;c:Program Files (x86)Hewlett-PackardHP ProtectTools Security ManagerBin;c:Program FilesIntelDMIX;C:Program Files (x86)IntelServicesIPT;C:Program FilesSASHomeSecure;C:Program FilesSASHomex86Secure;C:OptMiKTeX2.9miktexbinx64;C:OptMiKTeX2.9miktexbinx64;C:Rtoolsbin;C:Rtoolsgcc-4.6.3bin;C:RR-3.1.1binx64;C:RR-3.1.1bini386;
- * installing *source* package 'CRTRCppEigen' ...
- ** libs
- *** arch - i386
- cygwin warning:
- MS-DOS style path detected: C:/R/R-31~1.1/etc/i386/Makeconf
- Preferred POSIX equivalent is: /cygdrive/c/R/R-31~1.1/etc/i386/Makeconf
- CYGWIN environment variable option "nodosfilewarning" turns off this warning.
- Consult the user's guide for more details about POSIX paths:
- http://cygwin.com/cygwin-ug-net/using.html#using-pathnames
- g++ -m32 -I"C:/R/R-31~1.1/include" -DNDEBUG -I"C:/Users/LJH/Documents/R/win-library/3.1/Rcpp/include" -I"C:/Users/LJH/Documents/R/win-library/3.1/RcppEigen/include" -I"d:/RCompile/CRANpkg/extralibs64/local/include" -O2 -Wall -mtune=core2 -c CRTRCppEigen.cpp -o CRTRCppEigen.o
- CRTRCppEigen.cpp:3:20: fatal error: Rcpp.h : No such file or directory
- compilation terminated.
- make: *** [CRTRCppEigen.o] Error 1
- Warning: running command 'make -f "Makevars.win" -f "C:/R/R-31~1.1/etc/i386/Makeconf" -f "C:/R/R-31~1.1/share/make/winshlib.mk" SHLIB_LDFLAGS='$(SHLIB_CXXLDFLAGS)' SHLIB_LD='$(SHLIB_CXXLD)' SHLIB="CRTRCppEigen.dll" OBJECTS="CRTRCppEigen.o RcppExports.o rcppeigen_hello_world.o"' had status 2
- cygwin warning:
- MS-DOS style path detected: C:/R/R-31~1.1/etc/i386/Makeconf
- Preferred POSIX equivalent is: /cygdrive/c/R/R-31~1.1/etc/i386/Makeconf
- CYGWIN environment variable option "nodosfilewarning" turns off this warning.
- Consult the user's guide for more details about POSIX paths:
- http://cygwin.com/cygwin-ug-net/using.html#using-pathnames
- g++ -m32 -I"C:/R/R-31~1.1/include" -DNDEBUG -I"C:/Users/LJH/Documents/R/win-library/3.1/Rcpp/include" -I"C:/Users/LJH/Documents/R/win-library/3.1/RcppEigen/include" -I"d:/RCompile/CRANpkg/extralibs64/local/include" -O2 -Wall -mtune=core2 -c CRTRCppEigen.cpp -o CRTRCppEigen.o
- CRTRCppEigen.cpp:3:20: fatal error: Rcpp.h : No such file or directory
- compilation terminated.
- make: *** [CRTRCppEigen.o] Error 1
- Warning: running command 'make -f "Makevars.win" -f "C:/R/R-31~1.1/etc/i386/Makeconf" -f "C:/R/R-31~1.1/share/make/winshlib.mk" SHLIB_LDFLAGS='$(SHLIB_CXXLDFLAGS)' SHLIB_LD='$(SHLIB_CXXLD)' SHLIB="CRTRCppEigen.dll" OBJECTS="CRTRCppEigen.o RcppExports.o rcppeigen_hello_world.o" symbols.rds' had status 2
- ERROR: compilation failed for package 'CRTRCppEigen'
- * removing 'C:/Users/LJH/Documents/CRTRCppEigen.Rcheck/CRTRCppEigen'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement