小编Oli*_*ver的帖子

加速 Rcpp `anyNA` 等价物

这个问题与这个老问题这个老问题有关

R 具有很好的 wrapper-ish 功能anyNA,可以更快地评估any(is.na(x)). 在 Rcpp 中工作时,可以通过以下方式给出类似的最小实现:

// CharacterVector example
#include <Rcpp.h>
using namespace Rcpp;
template<typename T, typename S>
bool any_na(S x){
  T xx = as<T>(x);
  for(auto i : xx){
    if(T::is_na(i))
      return true;
  }
  return false;
}

// [[Rcpp::export(rng = false)]]
LogicalVector any_na(SEXP x){
  return any_na<CharacterVector>(x);
}

// [[Rcpp::export(rng = false)]]
SEXP overhead(SEXP x){
  CharacterVector xx = as<CharacterVector>(x);
  return wrap(xx);
}
/***R

library(microbenchmark)
vec <- sample(letters, 1e6, TRUE)
vec[1e6] <- NA_character_ …
Run Code Online (Sandbox Code Playgroud)

r rcpp

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

如何在并行运行的多个 R 作业完成后运行另一个 Rscript?

我需要如何运行脚本的安排是首先使用该函数并行运行 4 个 R 脚本rstudioapi::jobRunScript()。并行运行的每个脚本不会从任何环境导入任何内容,而是将创建的数据帧导出到全局环境。我的第 5 个 R 脚本基于并行运行的 4 个 R 脚本创建的数据帧,并且第 5 个脚本也在控制台中运行。如果有一种方法可以在前 4 个 R 脚本并行运行完成后在后台而不是在控制台中运行第 5 个脚本,那就会好很多。我还试图减少整个过程的总运行时间。

尽管我能够弄清楚如何并行运行前 4 个 R 脚本,但我的任务尚未完全完成,因为我找不到如何触发运行第 5 个 R 脚本的方法。希望大家能在这里帮助我

windows parallel-processing r rscript rstudioapi

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

为什么在 base::split(.$cyl) 中加点?

在 R for data science第 21.5.1 章中,此语法用于基本函数split(.$cyl)。为什么点在.$cyl. 该包具有占位符( 或)purrr的语法,但未涉及..xpurrr

library(tidyverse)
mtcars %>% split(f=.$cyl) 
Run Code Online (Sandbox Code Playgroud)

r tidyverse

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

标签 统计

r ×3

parallel-processing ×1

rcpp ×1

rscript ×1

rstudioapi ×1

tidyverse ×1

windows ×1