0

我正在尝试根据它们的集群和它们所处的角度为鸟类分配行为:

new[1:10,]
     date     time    angle cluster
1  23/05/2012 10:16:57 14.07701       2
2  23/05/2012 10:16:58 28.53635       0
3  23/05/2012 10:16:59 28.59663       0
4  23/05/2012 10:17:00 25.11674       0
5  23/05/2012 10:17:01 19.48292       0
6  23/05/2012 10:17:02 17.60478       0
7  23/05/2012 10:17:03 19.33444       1
8  23/05/2012 10:17:04 20.88084       1
9  23/05/2012 10:17:05 21.20995       1
10 23/05/2012 10:17:06 20.76851       1

new$class1[new$cluster=="0"]<-"flying"
new$class1[new$cluster=="1" & new$angle>="40"]<-"flapping"
new$class1[new$cluster=="1" & new$angle>="10" & new$angle<="40"]<-"floating"

第一行(飞行)有效,但一旦我尝试添加其他标准,它就不起作用了。任何想法将不胜感激

感谢所有的帮助。那部分代码似乎确实有效,我不确定昨天发生了什么!我在尝试引入 2 个新变量(X1=lead 和 X3=lag)的下一点遇到问题

      date     time      angle cluster X1 X2 X3   class1  

280 23/05/2012 10:21:36 -7.9957740 4 4 4 4
摆动 281 23/05/2012 10:21:37 -7.9653004 4 4 4 4 摆动
282 23/05/2012 10:21:38 -6.2596800 4 2 4 4 拍打
283 23/05/2012 10:21:39 13.9916609 2 2 2 4

new$class1[new$cluster=="4" & new$angle>"-1" & new$angle<="10"]<-"flapping"
new$class1[new$cluster=="4" & new $angle>"10" & new$angle<="80"]<-"ascent"
new$class1[new$cluster=="4" & new$angle>"-50" & new$angle<="- 1" & new$X1=="7"]<-"跳跃"
new$class1[new$cluster=="4" & new$angle>"-50" & new$angle<="-1" & new $X1!="7"]<-"bottom phase"
所以在上述情况下,行为应该是“bottom phase”)谢谢

谢谢您的帮助。只有在我删除引号后才能识别负角。

4

2 回答 2

1

实际上,您的代码对我来说很好。

> new = read.csv("bird.csv",header=T)
> new
         date     time    angle cluster
1  23/05/2012 10:16:57 14.07701       2
2  23/05/2012 10:16:58 28.53635       0
3  23/05/2012 10:16:59 28.59663       0
4  23/05/2012 10:17:00 25.11674       0
5  23/05/2012 10:17:01 19.48292       0
6  23/05/2012 10:17:02 17.60478       0
7  23/05/2012 10:17:03 19.33444       1
8  23/05/2012 10:17:04 20.88084       1
9  23/05/2012 10:17:05 21.20995       1
10 23/05/2012 10:17:06 20.76851       1
> 
> new$class1[new$cluster=="0"]<-"flying"
> new$class1[new$cluster=="1" & new$angle>="40"]<-"flapping"
> new$class1[new$cluster=="1" & new$angle>="10" & new$angle<="40"]<-"floating"
> new
         date     time    angle cluster   class1
1  23/05/2012 10:16:57 14.07701       2     <NA>
2  23/05/2012 10:16:58 28.53635       0   flying
3  23/05/2012 10:16:59 28.59663       0   flying
4  23/05/2012 10:17:00 25.11674       0   flying
5  23/05/2012 10:17:01 19.48292       0   flying
6  23/05/2012 10:17:02 17.60478       0   flying
7  23/05/2012 10:17:03 19.33444       1 floating
8  23/05/2012 10:17:04 20.88084       1 floating
9  23/05/2012 10:17:05 21.20995       1 floating
10 23/05/2012 10:17:06 20.76851       1 floating
于 2013-02-27T17:53:53.570 回答
1

去掉角度变量周围的引号,即

new$class1[new$cluster=="1" & new$angle>=40]<-"flapping"
new$class1[new$cluster=="1" & new$angle>=10 & new$angle<=40]<-"floating"
于 2013-02-27T17:27:15.840 回答