使用Purrr包R将多余的字符粘贴到列表的每个元素

时间:2019-06-01 23:02:20

标签: r functional-programming purrr

我有一个要迭代的列表,并在每个单词的末尾添加字符。但是,根据列表中的元素,我想更改要添加的单词。我也在寻找答案的直觉。最后,我正在使用purrr软件包中的函数式编程来寻找答案。

#Here is the output without using purrr

my.list = list(first = c("AAPL", "MSFT"),
               second = c("AMZN", "NFLX"))

paste(my.list[["first"]][1], ".O")
paste(my.list[["first"]][2], ".O")
paste(my.list[["second"]][1], ".P")
paste(my.list[["second"]][2], ".P")

所需的输出将是一个这样的列表。

$first
"AAPL.O" "MSFT.O"

$second
"AMZN.P" "NFLX.P"

列表中的第一个向量在向量中每个单词的末尾都收到“ .O”。 我列表中的第二个向量在每个单词的末尾都收到“ .P”。

谢谢。

1 个答案:

答案 0 :(得分:1)

您可以使用purrr::map2遍历2个相同大小的列表/向量。 paste0的工作方式与paste相似,但是串联时不能有空格。 paste/paste0是矢量化的,因此类似test <- letters[1:5]; paste0(test, "test")的作品。

suffix <- c(".O", ".P")
purrr::map2(my.list, suffix, ~paste0(.x, .y))