小编use*_*187的帖子

使用mkl编译r(支持mulithreads)

我通过关于这些指南编译了R:

http://www.r-bloggers.com/compiling-64-bit-r-2-10-1-with-mkl-in-linux/

http://cran.r-project.org/doc/manuals/R-admin.html#MKL

但是对于矩阵代数,R不使用所有可用的CPU.

我试过两个:

MKL="-L${MKL_LIB_PATH} -lmkl_gf_lp64 -lmkl_gnu_thread \
      -lmkl_core -fopenmp -lpthread"
Run Code Online (Sandbox Code Playgroud)

MKL="   -L${MKL_LIB_PATH}                               \
-Wl,--start-group                               \
            ${MKL_LIB_PATH}/libmkl_gf_lp64.a        \
            ${MKL_LIB_PATH}/libmkl_gnu_thread.a     \
            ${MKL_LIB_PATH}/libmkl_core.a           \
 -Wl,--end-group                                 \
 -lgomp -lpthread"
Run Code Online (Sandbox Code Playgroud)

选项.

如何强制R使用所有可用的CPU?

如何检查R是否使用MKL?

multithreading r compilation intel-mkl

4
推荐指数
3
解决办法
1955
查看次数

ubuntu中使用clang编译R包

目前我使用的是ubuntu。

默认情况下,R 使用 g++ 编译 R 包中的 c/c++ 代码。

如何强制 R 使用 clang++/clang?

c c++ makefile r

4
推荐指数
1
解决办法
1403
查看次数

提交使用OpenMP的R包

我试图提交支持OpenMP的R包(如果openmp可用,这个包可以在Linux中编译).

我检查可能包装时出现此错误.

检查Makevars中的编译标志...警告变量'PKG_CXXFLAGS'中的非可移植标志:-fopenmp

如何抑制此错误并将其提交给CRAN.

c++ r openmp

3
推荐指数
1
解决办法
545
查看次数

带两个参数的并行 foreach

我有这个代码:

  library(doParallel)
    registerDoParallel(cores = 8)

    result = foreach(A = c(1, 2, 3),B = c(10, 20), .combine = list) %dopar% {
    A*B
}
Run Code Online (Sandbox Code Playgroud)

结果

[[1]]
[1] 10

[[2]]
[1] 40
Run Code Online (Sandbox Code Playgroud)

但我想要:10、20、30、20、40、60

foreach r doparallel

3
推荐指数
1
解决办法
2334
查看次数

确定 R 中的类类型(S3 与 S4)

有什么方法可以确定 R 对象是 S3 还是 S4 类?

例如 class(x) 只返回对象名称而不是它的类型。

r class

3
推荐指数
1
解决办法
606
查看次数

-u在sort命令中不起作用

我使用此命令根据第一列对文件进行排序,并删除第一列中的重复行:

sort  -t" " -k1 -u
Run Code Online (Sandbox Code Playgroud)

但它不起作用?

bash

2
推荐指数
1
解决办法
230
查看次数

用R中的`\`+ wild charcter替换gsub中的wild字符

我想用相同的字符替换野生字符,但使用\前缀.

例如:

gsub("#","\\#","234254#3")
Run Code Online (Sandbox Code Playgroud)

预期结果:234254\#3 但我们得到:

  "234254#3"



   gsub(" ","\\ ","234254 3")
Run Code Online (Sandbox Code Playgroud)

预期结果: 234254\ 3

但我们得到:

"234254 3"
Run Code Online (Sandbox Code Playgroud)

但是这个命令不起作用.

regex r

2
推荐指数
1
解决办法
81
查看次数

简单的功能不适用于`dcast` - reshape2

假设我有这些数据:

 c1 c2 c3
 A  A  AA
 A  B  BB
 A  C  CC
 B  A  DD
 B  B  EE
 B  C  FF
 C  A  GG
 C  B  HH
 C  C  II
 A  A  JJ
Run Code Online (Sandbox Code Playgroud)

我想dcast用这个函数重塑它们:

dcast(data,c1~c2,value.var="c3",function(x)x)
Run Code Online (Sandbox Code Playgroud)

但我得到这个错误:

Error in vapply(indices, fun, .default) : values must be length 0,
 but FUN(X[[1]]) result is length 1
Run Code Online (Sandbox Code Playgroud)

如何使用新功能dcast(用户定义的功能).

我想得到:

  A   B   C
A AA BB  CC
B DD EE  FF
C GG HH  II
A JJ NA  NA
Run Code Online (Sandbox Code Playgroud)

r reshape

1
推荐指数
1
解决办法
424
查看次数

基于vector <bool>的内容对vector vector <vector <bool >>进行排序

我有2000个 vector<vector<bool>>,每个vector<bool>包含200个元素,我将对这个向量矢量进行排序.假设元素vector<bool>是一个二进制数.

原始数据:

vector 1: 1,1,1
vector 2: 1,0,1
vector 3: 0,0,0
vector 4: 1,0,0
Run Code Online (Sandbox Code Playgroud)

排序后:

vector 3: 0,0,0
vector 4: 1,0,0
vector 2: 1,0,1
vector 1: 1,1,1
Run Code Online (Sandbox Code Playgroud)

可以使用sort一个特殊的谓词,但令人惊讶的是,当我在sort没有谓词的情况下调用时,它似乎无论如何都可以工作.

    vector<bool> A = {1, 1, 1};
    vector<bool> B = {1, 0, 1};
    vector<bool> C = {0, 0, 0};
    vector<bool> D = {1, 0, 0};

    vector < vector<bool> > v = {A,B,C,D};

    sort(v.begin(),v.end());
Run Code Online (Sandbox Code Playgroud)

并且顺序为上面的"排序后".

为什么没有特殊的谓词呢?

c++

0
推荐指数
1
解决办法
548
查看次数

标签 统计

r ×7

c++ ×3

bash ×1

c ×1

class ×1

compilation ×1

doparallel ×1

foreach ×1

intel-mkl ×1

makefile ×1

multithreading ×1

openmp ×1

regex ×1

reshape ×1