以下载体:
N <- c('a','b')
M <- c('x','y')
在保持向量完整的同时(我不希望将它们组合成矩阵),我想以下面的成对方式调用向量的元素:
"a" "x" "b" "y"
我尝试使用for
循环,但是在下面写的方式中,它被读作嵌套for循环:
for (i in M) for (j in N) {
print(i)
print(j)
}
结果是:
"a" "x" "a" "y" "b" "x" "b" "y"
将搜索字词用作多个索引, for loops 和双循环,我只能找到有关嵌套循环的信息。在我的任务中使用流命令并没有帮助我。
我想在图像中添加一行文字。文本标签存储在单个矢量中,图像也是如此。到目前为止我的代码工作,除了以上面说明的成对方式调用向量的元素。有很多图片和生命太短,无法手工完成。
非常感谢任何帮助!
斯泰恩
答案 0 :(得分:2)
我们可以rbind
向量然后连接
c(rbind(M, N))
#[1] "x" "a" "y" "b"
或其他选项order
基于vector
c(M, N)[order(c(seq_along(M), seq_along(N)))]
#[1] "x" "a" "y" "b"
如果我们确实需要for
循环,那么预先分配list
length
,其中list
等于&#39; M&#39;中的元素数量,循环执行其中一个向量,并指定&#39; M&#39;的连接元素。和&#39; N&#39;基于unlist
元素的索引和l1 <- vector("list", length(M))
for(i in seq_along(M)){
l1[[i]] <- c(M[i], N[i])
}
unlist(l1)
#[1] "x" "a" "y" "b"
{{1}}
答案 1 :(得分:0)
在“真实目标”中解释的方式,“文本标签”向量中的每个元素对应于“图像向量”中的一个元素。如果这是正确的,那么解决方案就不那么简单(假设两个向量具有相同的长度):
for (i in textTags)
addThisToThat(textTags[i], images[i])
答案 2 :(得分:0)
答案 3 :(得分:0)
对于有这个问题的其他人,我建议使用基本R函数mapply
。与for
循环不同,它会为每个循环自动定义变量n
和m
。
mapply(N, M, function(n, m) {
print(n)
print(m)
})
请注意,如果您想在每个循环上打印一些内容,则此操作无效。