列表列映射的意外输出

托马斯·斯坦纳

以下是我的代码的输出以及我想要的输出。我只希望打印每个字符向量,但是它会同时打印两个字符向量,然后还会打印出整个列表列。为什么会发生这种情况,我该如何更改才能获得所需的输出?

library(tidyverse)

data <- tribble(
  ~x,  ~y,
  "a", rep("yes", 10),
  "b", rep("no", 10)
)

map(data$y, ~ print(.x))
#>  [1] "yes" "yes" "yes" "yes" "yes" "yes" "yes" "yes" "yes" "yes"
#>  [1] "no" "no" "no" "no" "no" "no" "no" "no" "no" "no"
#> [[1]]
#>  [1] "yes" "yes" "yes" "yes" "yes" "yes" "yes" "yes" "yes" "yes"
#> 
#> [[2]]
#>  [1] "no" "no" "no" "no" "no" "no" "no" "no" "no" "no"

所需的输出:

#>  [1] "yes" "yes" "yes" "yes" "yes" "yes" "yes" "yes" "yes" "yes"
#>  [1] "no" "no" "no" "no" "no" "no" "no" "no" "no" "no"

reprex软件包(v1.0.0)创建于2021-02-14

罗纳克·沙

lapply/map将始终返回值。因此,您将其告知print值,并且它还返回传递的值,这样您将获得两个输出。这样您就可以使用.x其中之一。

purrr::map(data$y, ~ .x)

与...相同

data$y

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章