首页 > 解决方案 > 在 R 中使用映射函数和向量

问题描述

我试图了解具有purrr::map()函数的向量的工作原理。我有一个向量c("cat", "fish", "hamster"),我想将其转换为以下输出:

[[1]]
[1] "cat" "cat" "cat"

[[2]]
[1] "fish" "fish"

[[3]]
[1] "hamster"

不确定map()我应该使用哪个功能以及如何使用它。我发现它重复了第一个元素三次,两次重复了两次,第三次重复了三次。

标签: rpurrr

解决方案


我们不需要为此打包。rep和_split

v2 <- rep(v1, length(v1):1)
split(v2, v2)
#$cat
#[1] "cat" "cat" "cat"

#$fish
#[1] "fish" "fish"

#$hamster
#[1] "hamster"

或使用imap

library(purrr)
rev(imap(rev(v1), ~ rep(.x, .y)))

数据

v1 <- c("cat", "fish", "hamster")

推荐阅读