R中属性的模式匹配

时间:2012-11-14 15:39:57

标签: r

是否存在用于循环R中变量列表的模式匹配方法?

我非常清楚使用索引,但到目前为止,我在循环中找不到多个属性。

我拥有的是:

x <- c(1, 2, 3, 4)
y <- c(4, 3, 2, 1)
for (i in 1:length(x)) {
    x[i]
    y[i]
}

我希望:

x <- c(1, 2, 3, 4)
y <- c(4, 3, 2, 1)
for ((xi, yi) in c(x, y)) {
    xi
    yi
}

问候!

3 个答案:

答案 0 :(得分:2)

不,R不允许您以这种方式解压缩值。您只能将序列中的每个元素分配给单个变量。

见这里: http://cran.r-project.org/doc/manuals/R-lang.html#for

答案 1 :(得分:1)

您可以使用mapply代替for循环:

,例如,

mapply(c, x, y)

运行c函数,xy中的所有值都在同一索引处,即x=1y=4等。

     [,1] [,2] [,3] [,4]
[1,]    1    2    3    4
[2,]    4    3    2    1

也可以定义新功能:

mapply(function(xi, yi) "your function", x, y)

答案 2 :(得分:0)

看一下foreach包:

  

http://cran.r-project.org/web/packages/foreach/index.html

我认为你会用foreach()函数找到你想要的东西。