R可以为循环括号内的变量赋值吗?

时间:2015-06-04 11:45:38

标签: r

其中x在括号内设置为i

i <- 2
for(x  <-  i in x:10)
{
  print(x)
}

这应该打印2,3,4,5,6,7,8,9,10

可以这样做吗?

基本上我想要做的是将这个Javascript代码转换为R

var J =  ;
var Found = false;
var Counter = 0;
var X = 0;
var Truth = false;
var Strength = 2;
    for (J = Strength;(J < 80)&&(Found == false); J++)
    {
        Price = low(-J); //p=25
        X = J + 1;  //x=3
        Truth = true;
        for (X = (J + 1); ((X - J) <= Strength)&&(Truth); X++)
        {
            if (Price > low(-X)) Truth = false;
        }
        X = J - 1;
        for (X = (J - 1);((J - X) <= Strength)&&(Truth); X--)
        {
            if (Price >= low(-X)) Truth = false;
        }
        if (Truth) Counter++;
        if (Counter >= 1) Found = true;
    }

    if (Found) SwingLow = Price;

    else SwingLow = -1;

代码遍历时间序列并在财务数据中找到分形模式。

http://www.timingthemarket.com/uploads/3/0/9/1/3091598/9585500_orig.png?876

如果有人可以转换for(***)部分,我应该可以完成剩下的工作。 我没有写原始代码,对我来说,它的完成方式似乎有点奇怪。

1 个答案:

答案 0 :(得分:2)

我不确定,但我认为在R中你不能提出什么问题。如果你使用?"for",你可以看到for控制循环的精确指南。

这里声明括号内的cond必须是逻辑向量。在我看来,这排除了在cond内分配变量的可能性,因为如果你输入你的控制台,你可以看到:

> is.logical(x <- 1)
[1] FALSE

修改

正如其他用户所说,您可以使用此代码:

for(i in ((x<-i):10))
    {
      print(x)
    }

并且它有效,但事实上我认为它不会再现你想要的但只有一个(在我看来毫无意义)符号变化,因为我猜R会像你说的那样解释它:

  

i执行某项操作,但i现在称为x,因此请执行x上的上一个操作。

毕竟你的意图可以用更简单的代码实现:

> i <- 4
> for(i in i:10) print(i)
[1] 4
[1] 5
[1] 6
[1] 7
[1] 8
[1] 9
[1] 10

也许它有用,并且允许您不要在cond循环的for内询问变量。