【发布时间】:2016-04-14 22:11:52
【问题描述】:
在尝试在大型数据帧中实现嵌套 for 循环时,我意识到嵌套 for 循环并没有产生我期望的结果。这是我的问题的摘录。
df <- data.frame(nrow = 20, ncol = 1)
df <- data.frame( LastPrice = c( 1221, 1220, 1220, 1217, 1216, 1218 , 1216, 1216, 1217, 1220, 1219, 1218, 1220, 1216, 1217, 1218, 1218, 1207, 1206, 1205))
for(j in 1:20) {for (i in 1:10) {df$SignalBinary[j] <- ifelse (df$LastPrice[j+i] == 1216, 1, 0)}}
我希望并希望嵌套的 for 循环将 SignalBinary 向量添加到具有以下值的 df 数据帧:“1 1 1 1 1 1 1 1 1 1 NA NA NA NA NA NA NA NA NA NA”
- 前 10 行显示“1”,因为在下面 10 行中的至少一个中,每行都有 1216
- “NA”在后面 10 上,因为对于那些 i 循环超出了向量长度
相反,df$SignalBinary 变为 "0 0 0 1 0 0 0 0 0 0 NA NA NA NA NA NA NA NA NA NA"
不明白。为什么只注册一个1216?非常感谢!
【问题讨论】:
-
你的第一行是为了什么?另外,因为在下面的 10 行中的至少一个中每个都有 1216,你的意思是什么?下面是什么?您的意思是 1216 是否存在于第 11-20 行?
-
猜第一行没有必要。意味着在第 02-11 行中至少出现一次以记录第 1 行中的 1,在第 03-12 行中至少出现一次以在第 2 行中记录 1 ...并且在第 11-20 行中至少出现一次以在第 1 行中记录 1第 10 行。谢谢。
标签: r for-loop nested-loops