使用db.collection.aggregate([
{ "$sort": { "value": 1 }},
{ "$group": { "_id": "$type", "values": { "$push": "$value" }}},
{ "$project": { "values": { "$slice": [ "$values", 0, 2 ] }}}
])
,对于我在R中编写的包,我试图反转NumericMatrix,以便最后一行现在成为第一行,第一行将成为最后一行,在其他行中单词,相对行索引将从File[] list = (new File("/mnt/sdcard")).listFiles();
for(File f : list){
Log.i("bairro", f.getPath());
}
变为Rcpp
所以,如果我声明以下函数:
1, 2, 3, ... n
我有一个名为'mid'的'N x M'数字矩阵,我试图通过以下方式按行反转:
n, n-1, n-2, .... 1
为什么我得到以下输出,表明没有任何改变...... ???
NumericMatrix reverseByRow(NumericMatrix in){
int r = in.nrow();
NumericMatrix nw(r,in.ncol());
for(int i = 0; i < r; i++){
nw.row(i) = in.row(r-i-1);
}
return nw;
}
当然我错过了一些非常明显的东西...... ???
答案 0 :(得分:2)
这是一个&#39;固定&#39;具有合适变量名称的版本:
#include <Rcpp.h>
using namespace Rcpp;
// [[Rcpp::export]]
NumericMatrix reverseByRow(NumericMatrix inmat) {
int r = inmat.nrow();
NumericMatrix nw(r,inmat.ncol());
for(int i = 0; i < r; i++){
nw.row(i) = inmat.row(r-i-1);
}
return nw;
}
/*** R
M <- matrix(1:9, 3, 3)
M
reverseByRow(M)
*/
按预期工作:
R> sourceCpp("/tmp/nicholas.cpp")
R> M <- matrix(1:9, 3, 3)
R> M
[,1] [,2] [,3]
[1,] 1 4 7
[2,] 2 5 8
[3,] 3 6 9
R> reverseByRow(M)
[,1] [,2] [,3]
[1,] 3 6 9
[2,] 2 5 8
[3,] 1 4 7
R>