首页 > 解决方案 > 如何将向量的第i个元素粘贴到向量列表的第i个元素

问题描述

我有一个第 n 个元素的向量和一个具有相同数量元素的列表,每个都是一个向量。对于一个简单的等效示例:

v <- c("a","b")
num1 <- c(1,2,3)
num2 <- c(10,20,30)
numList <- list(num1,num2)

我想要的输出是:

"a1"  "a2"  "a3"  "b10" "b20" "b30"

我可以用 for 循环做到这一点:

output <- vector() 
for (i in 1:length(v)) {
  output <- c(output, paste0(v[i], numList[[i]]))
}
output

[1] "a1"  "a2"  "a3"  "b10" "b20" "b30"

但是有没有更简单或更聪明的方法,使用lapplyor tidyverse?我尝试了以下并没有得到我想要的:

lapply(numList, function(x) paste0(v, x))

标签: rlistvectorpaste

解决方案


我们可以试试下面的基本 R 代码

> c(sapply(seq_along(v), function(k) paste0(v[k], numList[[k]])))
[1] "a1"  "a2"  "a3"  "b10" "b20" "b30"

推荐阅读