我想了解为什么第一个块有效但第二个块不起作用。我相信这与
pwalk
实际上没有输出任何内容有关。然而,错误是concated_cols must be size 150 or 1, not 2
。我原以为它的大小是 1。它输出什么?
library(tidyverse)
#pmap: Works
iris|>
mutate(concated_cols=pmap(
.l = list(Sepal.Length=Sepal.Length,Petal.Length=Petal.Length),
.f = \(Sepal.Length,Petal.Length){
str_c(Sepal.Length,Petal.Length)
}
))
#pwalk: Does not work (in my use case, I was trying to use pwalk to write out files, so this is just to demo the error
iris|>
mutate(concated_cols=pwalk(
.l = list(Sepal.Length=Sepal.Length,Petal.Length=Petal.Length),
.f = \(Sepal.Length,Petal.Length){
str_c(Sepal.Length,Petal.Length)
}
))
如果您阅读“值”部分下的
?purrr::pwalk
的帮助,您会发现:
walk() 返回输入 .x (不可见)。这使得它很容易在管道中使用。 .f() 的返回值被忽略。
所以你的
pwalk()
正在回归 list(Sepal.Length=Sepal.Length,Petal.Length=Petal.Length)
。