在dplyr :: transmute中使用`paste`

时间:2017-10-02 07:01:18

标签: r dplyr

&#34;对于哪些数字xy,其在十进制数字系统中的表示为6x12y的数字除以45?&#34; < / p>

以下当然不是与我的傻瓜讨论的解决方案,而是试图在R中测试我的技能。但是,最后一行并没有做我想要的。

library(tidyverse)
library(stringi)

replicate(2, 0:9, simplify = FALSE) %>% 
  expand.grid() %>% 
  as.tibble() %>% 
  transmute(newcol=do.call(paste0,list(6,Var1,12,Var2))) %>% 
  map_df(as.numeric) %>% 
  filter(newcol%%45==0) %>% 
  transmute(x_y=paste(stri_sub(newcol,c(2,5),c(2,5)),collapse = " "))

我用这个得到了理想的结果。但是我之前的错误是什么?

replicate(2, 0:9, simplify = FALSE) %>% 
  expand.grid() %>% 
  as.tibble() %>% 
  transmute(newcol=do.call(paste0,list(6,Var1,12,Var2))) %>% 
  map_df(as.numeric) %>% 
  filter(newcol%%45==0) %>% 
  transmute(x_y=map2_chr(stri_sub(newcol,2,2),stri_sub(newcol,5,5),paste))

1 个答案:

答案 0 :(得分:1)

您需要按行进行操作。因此,在管道中添加Source: local data frame [3 x 1] Groups: <by row> # A tibble: 3 x 1 x_y <chr> 1 0 0 2 9 0 3 4 5 条件将修复它,即

// set it up
firebase.storage().ref().constructor.prototype.putFiles = function(files) { 
  var ref = this;
  return Promise.all(files.map(function(file) {
    return ref.child(file.name).put(file);
  }));
}

// use it!
firebase.storage().ref().putFiles(files).then(function(metadatas) {
  // Get an array of file metadata
}).catch(function(error) {
  // If any task fails, handle this
});

这给出了预期的结果,

{{1}}