其中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(***)部分,我应该可以完成剩下的工作。 我没有写原始代码,对我来说,它的完成方式似乎有点奇怪。
答案 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
内询问变量。