楼主: 月色凝寂
6032 18

[问答] R语言条件语句中,可以出现判断两个变量吗? [推广有奖]

11
月色凝寂 发表于 2018-1-5 14:43:01
cheetahfly 发表于 2018-1-5 14:34
你能不能截取一个能够让别人重复你所遇到的问题的最小数据集,以及相关代码放上来。不然别人只能是去“猜 ...
y<-vector(mode="numeric",length=0 )
for (i in 3:nrow(data){
  if(data$diff[i-2]<0&&data$diff[i-1]>0&&data$diff<0&&data$mean<data$mean[i-2]){
    y<-0
  }else{
    y<-0
  }
}

12
月色凝寂 发表于 2018-1-5 14:52:54
月色凝寂 发表于 2018-1-5 14:35
我弄了,一直在审核中,我重新试试

1.png (5.42 KB)

1.png

3.png (8.46 KB)

3.png

1.png (5.42 KB)

1.png

13
zhouhao211314 发表于 2018-1-5 14:53:11
月色凝寂 发表于 2018-1-5 14:10
嗯,我打字的时候可能没注意,我是想抓分钟数据的趋势,既要用到差分序列又要用原序列来设定条件,一引用 ...
先分别直接运行你的判断条件,看看能否正常返回逻辑值或者逻辑值序列

14
jinkelazzz 发表于 2018-1-5 15:33:55
月色凝寂 发表于 2018-1-5 14:52
你这个下标i会越界啊

15
月色凝寂 发表于 2018-1-5 15:44:26
jinkelazzz 发表于 2018-1-5 15:33
你这个下标i会越界啊
不对,我写错了,应该是3:nrow(data),因为上午不行,我换了一种方法,粘串了

16
cheetahfly 在职认证  发表于 2018-1-5 15:54:22
在出错之后打print(i),可以看到是运行到哪一步出错的。

另外,你在量化投资中这样运用R语言,会痛苦死的。

而且,y <- 0, y <- 1, y始终只是一个标量啊。

17
月色凝寂 发表于 2018-1-5 16:16:25
cheetahfly 发表于 2018-1-5 15:54
在出错之后打print(i),可以看到是运行到哪一步出错的。

另外,你在量化投资中这样运用R语言,会痛苦死的 ...
反正换了种方法写弄出来了,我就不研究这个问题了。谢谢大家帮助。
不过你说的我要哭了,何尝不悔恨当时学的不是python

18
2801959927 在职认证  发表于 2018-1-6 19:16:59
可能是括号的问题。把每一个条件都用小括号括起来再试试。
我自己写判断语句的时候,习惯先给每个条件都存为变量,再并起来进行判断,比如:
  1. condition_1 <- data$diff[i-2] < 0
  2. condition_2 <- data$diff[i-1] > 0
  3. condition_3 <- #......
  4. total_condition <- condition_1 & condition_2 & condition_3
  5. if (total_condition) {#......}
复制代码
行数是多了点,但看起来既清晰又不容易出错,后期要再更改也比较方便。

19
cheetahfly 在职认证  发表于 2018-1-7 21:46:52
月色凝寂 发表于 2018-1-5 16:16
反正换了种方法写弄出来了,我就不研究这个问题了。谢谢大家帮助。
不过你说的我要哭了,何尝不悔恨当时 ...
你误会我的意思了。除开某些“走一步看一步”的复杂策略的回测,用R语言解决这些量化投资的问题完全不在话下。但是你用C++的编程风格来对待R语言,会很痛苦。R语言要用向量化计算的思维才会快。python中的numpy、pandas也是一样。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-26 05:59