我可以使用for循环组合两个向量的输出,使第n个元素与第n个元素配对吗?



我正在尝试自动化一些繁琐的代码编写。我有如下内容:

Codes<-c("code1","code2","code3","code4")
other_Codes<-c("code5","code6","code7","code8")

我想创建的内容如下所示:

repetetivetext Code1 repetetivetext Code5 
repetetivetext Code2 repetetivetext Code6 
repetetivetext Code3 repetetivetext Code7
repetetivetext Code4 repetetivetext Code8

…所以第一个向量的第一个参数与第二个向量的第一个参数配对,以此类推。可以这样做:

paste0("repetetivetext ",Codes, "repetitive text ", other_Codes)

但由于不同的原因(实际代码比这更复杂),这不是一个可行的解决方案。我更愿意使用for循环或嵌套for循环的变体,它可以让我组合两个向量中的元素,但只给我4个组合,而不是16个。

有这样的变化吗?还是有我没想到的另一种方法?

你可以只使用一次迭代'for循环',也许你寻找这样的东西?:

Codes <- c("code1", "code2", "code3", "code4")
other_Codes <- c("code5", "code6", "code7", "code8")
output = c()
text = "repetetivetext "
for (j in 1:length(Codes)) { 
element = paste0(text, Codes[j], text,other_Codes[j])
output  = c(output, element)
}
output

如果您想将两个向量组合起来,这两个向量都由四个元素组成,得到所有16种组合,你必须根据另一个向量的长度乘以一个向量的元素。您可以使用purrr::map2及其家族(例如purrr::map2_chr)在(嵌套的)for循环中做到这一点。

library(purrr)
Codes <- c("code1", "code2", "code3", "code4")
other_Codes <- c("code5", "code6", "code7", "code8")
map2_chr(
.x = rep(Codes, each = length(other_Codes)),
.y = rep(other_Codes, times = length(Codes)),
~ paste0("repetetive text ", .x, " repetitive text ", .y)
)
#  [1] "repetetive text code1 repetitive text code5"
#  [2] "repetetive text code1 repetitive text code6"
#  [3] "repetetive text code1 repetitive text code7"
#  [4] "repetetive text code1 repetitive text code8"
#  [5] "repetetive text code2 repetitive text code5"
#  [6] "repetetive text code2 repetitive text code6"
#  [7] "repetetive text code2 repetitive text code7"
#  [8] "repetetive text code2 repetitive text code8"
#  [9] "repetetive text code3 repetitive text code5"
# [10] "repetetive text code3 repetitive text code6"
# [11] "repetetive text code3 repetitive text code7"
# [12] "repetetive text code3 repetitive text code8"
# [13] "repetetive text code4 repetitive text code5"
# [14] "repetetive text code4 repetitive text code6"
# [15] "repetetive text code4 repetitive text code7"
# [16] "repetetive text code4 repetitive text code8"

最新更新