我想在转换器中使用 pmap,如果我使用常规地图编写代码,它工作正常。但是,如果我使用 pmap,则会出现 arity 异常。是否有可能在 clojure 中实现这一点,或者我做错了什么?如果这是不可能的,有人可以指出为什么会发生这种情况的文档吗?只是出于好奇。下面粘贴的是我的代码和 arity 异常的开头。
(def get-in-map (comp
(pmap read-csv)
))
clojure.lang.Compiler$CompilerException: clojure.lang.ArityException: Wrong number of args (1) passed to: core/pmap, compiling:
Run Code Online (Sandbox Code Playgroud) 我有一个以下结构的列表,
myList <- replicate(5, data.frame(id = 1:10, mean = runif(10)), simplify =F)
我希望通过合并来减少它
myList %>% reduce(function(x, y) merge(x, y, by = 'id'))
Run Code Online (Sandbox Code Playgroud)
然而,这导致以下colnames:
id mean.x mean.y mean.x mean.y mean
Run Code Online (Sandbox Code Playgroud)
虽然我想要像
id mean1 mean2 mean3 mean4 mean5
Run Code Online (Sandbox Code Playgroud)
数字基于的顺序myList
.
显然我可以迭代1:length(myList)
,但我发现这个解决方案不优雅.其他选择是在reduce函数中引入一个检查,但这会导致对列表中每个元素进行新的线性时间搜索,所以我不认为它非常有效.
还有另一种方法来实现这一目标吗?