我有一个我想要执行的循环,这取决于代码中前一个循环的输出。这是代码;
holder <- list()
if (i < historyLength) movement <- movementType(relAngle, angleThreshold)
else if (i > historyLength-1) {
# Array to store speeds
speedHistory <- array(historyLength)
n = historyLength-1
# get the speeds from the previous n (hisoryLength) "Movements"
for (j in seq(1, length(historyLength))){
speedHistory [n] = R[i-j, 6]
n-1
}
if (!bayesFilter(speedHistory, minSpeed, GPS_accy)) movement <- "non-moving"
else if(bayesFilter(speedHistory, minSpeed, GPS_accy)) movement <- movementType(relAngle, angleThreshold)
}
holder [[i]] <- (movement)
for (t in seq(1, length(holder))){
if (t == t-1)
changes <- 0
else if (t != t-1)
changes <- 1
}
您无法看到循环的开头,但会产生一列称为“移动”的数据。
我试图暂时将'动作'存储在对象'持有者'中。我想要的是底部for循环通过'holder'并在另一列中将标签更改为0或1。基本上如果下一个'运动'不等于前一个记录,则变为0等等。我认为问题在于对象'持有者'或许?
目前我正在进行循环,但它只打印出一列'1'。
任何帮助非常感谢!谢谢。
目前获得以下输出:
Movement Changes
left 1
right 1
forward 1
non-moving 1
non-moving 1
认为问题出在存储动作的列表中?对不起,如果我知道问题在哪里,我会更具体。真的很新!
我最终得到一个数据框,其中列标题为“距离”,“速度”,“标题”,“运动”和“更改”。它循环正常,但由于某种原因,如上所述,更改结果为1列。下面有明显的错误吗?:
holder[[i]] <- (movement)
for (t in seq(1, length(holder))){
if (t == t-1)
changes <- 0
else if (t != t-1)
changes <- 1
我也尝试了这个,但它根本没有循环。
holder[[i]] <- (movement)
for (t in seq(1, length(holder))){
if (holder[t] == holder[t-1])
changes <- 0
else if (holder[t] != holder[t-1])
changes <- 1
我目前收到此错误:持有人[[t - 1]]出错:尝试选择少于一个元素
代码如下:
holder <- list(movement)
for (t in length(holder)){
if (holder[[t]] == holder[[t-1]])
changes <- 0
else changes <- 1
答案 0 :(得分:2)
这对于评论来说太长了,所以我把它作为答案(实际上它可能会回答你的问题):
正如我在上一个问题的评论中已经提到过的那样,你应该看一下seq(1, length(holder))
是什么,以及当你放if (t == t-1)
时你正在做什么:你正在做类似&#的事情34;如果1 == 0&#34;这不可能是真的。
您需要使用&#34;第二个版本&#34;您的循环(或实际上没有循环...),它比较正确的事情,但holder
是list
,所以您需要将其定义为矢量或使用双括号(holder[[t]]
)。
if
之后你不需要另外else
(你实际上是什么&#34;说&#34;对于R是&#34;如果A
是真的然后做一些事情,否则,如果A
&#39;相反,那么做其他事情&#34;但是,必要时,如果A
不是真,那么&#39;对面A
&#39;是......
如下所示:
for (t in seq(length(holder))){
if (holder[[t]] == holder[[t-1]]) changes <- 0 else changes <- 1
}
请考虑花一些时间回答上一个问题的答案,以了解您的解决方案无法解决的原因以及提供答案的原因。 (这包括阅读不同功能的文档,并查看变量可以采用的值,例如运行循环,一次&#34;一次转动#34;