如何添加现有列表的后缀(或前缀)元素?

时间:2013-12-17 19:31:18

标签: r

假设我有一个名为myList的现有列表。

myList <- list(list1=c("item1", "item2"), list2=c("item3", "item4"))

myList因此包含:

$list1
[1] "item1" "item2"

$list2
[1] "item3" "item4"

我想将.t0附加到list1中的list2myList内的每个元素,因此我最终得到:

$list1
[1] "item1.t0" "item2.t0"

$list2
[1] "item3.t0" "item4.t0"

想要返回list(list1=c("item1", "item2"), list2=c("item3", "item4"))步骤并在那里添加.t0。我想操纵myList添加.t0

3 个答案:

答案 0 :(得分:7)

使用lapplypaste0

> lapply(myList, paste0, ".t0")
$list1
[1] "item1.t0" "item2.t0"

$list2
[1] "item3.t0" "item4.t0"

答案 1 :(得分:2)

来自tidyversepurrr的实施:

前缀:

library(purrr)
nms <- purrr::map_chr(myList, ~ paste0("t0.", .))

说明:

library(purrr)
nms <- purrr::map_chr(myList, paste0, ".t0")

答案 2 :(得分:0)

如果您有dataframe格式的列,我想添加一个答案,因为其他答案对于写入的情况不起作用。

library(tidyverse)
myList <- data_frame(list1=c("item1", "item2"), list2=c("item3", "item4"))
myList <- myList %>% 
  mutate(
    list1 = paste0(list1, ".t0"),
    list2 = paste0(list2, ".t0")
  )

如果您只有几列,这是最好的。您可以使用map来遍历多个列。