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