小编ear*_*ate的帖子

如何使用pipe和purrr获取列表名称和切片名称

我想知道在使用purrr管道操作时如何将列表名称或组名称作为标志.例如:我想使用每个列表名称的dynameic参数传递给ggsave函数.

require(purrr)
require(ggplot2)
lst=list(a1=data.frame(x=1:10,y=2:11),a2=data.frame(x=1:10,y=-1*2:11))
df=rbind(transform(lst[[1]],id="a1"),transform(lst[[2]],id="a2"))
lst %>% map(~ggsave(plot=qplot(data=.,x="x",y="y",geom="line"),file=paste(listname(.),".png")))
df %>% slice_rows("id") %>%
  by_slice(~ggsave(plot=qplot(data=.,x="x",y="y",geom="line"),file=paste("slicename(.)",".png")))
Run Code Online (Sandbox Code Playgroud)

slicename(.)应该是唯一的(.[["id"]]),但是当使用slice_rows时它不起作用.

r pipe ggplot2 purrr

6
推荐指数
2
解决办法
1675
查看次数

Rcpp:如何获取 Rcpp::Nullable NumericVector 的大小

我想将R函数翻译成Rcpp,一个简单的测试代码如下,但我不知道如何处理默认设置为NULL的参数。

test<- function(t=NULL,tmax=NULL,tmin=NULL){
  if(is.null(t)){
    yout=(tmax-tmin)*(tmin+tmax)
  }else{
    yout=2*t
  }
  return(yout)
}

test(tmax=1:3,tmin=0:2)




  // [[Rcpp::export]]
    NumericVector cpptest(Rcpp::Nullable<Rcpp::NumericVector> t=R_NilValue,
                          Rcpp::Nullable<Rcpp::NumericVector> tmax=R_NilValue,
                          Rcpp::Nullable<Rcpp::NumericVector> tmin=R_NilValue){
      int N=0;
      if(t.isNotNull()) {
        N=t.size(); /* which show a error*/
      }else{
        N=tmax.size(); /* which show a error*/
      }
      NumericVector yout=NumericVector(N);

      if(t.isNotNull()) {
        for(i=0;i<N,i++){
          yout[i]=2*t[i]
        }
      }else{
        for(i=0;i<N,i++){
          yout[i]=(tmax[i]-tmin[i])*(tmin[i]+tmax[i])
        }
      }
      return(yout)
    }
Run Code Online (Sandbox Code Playgroud)

rcpp

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

标签 统计

ggplot2 ×1

pipe ×1

purrr ×1

r ×1

rcpp ×1