2016-12-03 7 views
0

Я пытаюсь классифицировать точки местоположения в соответствии с их расстоянием и несущей с первой точки в кадре данных. Этот код работает, однако он проверяет только расстояния от df$dist.R - Резка кадра данных на два столбца

df$circle_id = cut(df$dist, seq(0,41000000,1000), labels=FALSE, include.lowest=TRUE) 

То, что я хочу сделать, это также проверить, если подшипник точек одинакова, и только тогда они могут быть помещены в одной и той же категории. Подшипники хранятся в df$bearing.

Проще говоря, мне нужно, чтобы объединить эти две операции в одну:

df$circle_id = cut(df$dist, seq(0,41000000,1000), include.lowest=TRUE) 
df$circle_id = cut(df$bearing, seq(-180,180,10), labels=FALSE, include.lowest=TRUE) 

Пример кадра данных:

latitude longitude sensor_time circle_id segment_id weight  dist bearing 
1 48.15144 17.07569 1447149703   1   1  2 0.000000 -180.00000 
3 48.15404 17.07452 1447149743   3   1  1 302.422843 163.22826 
4 48.15277 17.07514 1447149762   2   1  1 153.179367 164.50437 
5 48.15208 17.07538 1447149771   1   1  1 74.666669 161.91792 
6 48.15461 17.07560 1447149773   3   1  3 353.106770 178.87100 
9 48.15139 17.07562 1447149811   1   1  2 7.828957 43.83916 

Любая помощь приветствуется, спасибо

+2

Задайте параметр 'labels'. – alistaire

ответ

1

При установке параметр labels до FALSE, функция cut будет возвращать целые числа. Пример:

> x <- sample(1:10) 
> cut(x, seq(0,10,2)) 
[1] (6,8] (8,10] (2,4] (4,6] (2,4] (0,2] (8,10] (0,2] (6,8] (4,6] 
Levels: (0,2] (2,4] (4,6] (6,8] (8,10] 
> cut(x, seq(0,10,2), labels = FALSE) 
[1] 4 5 2 3 2 1 5 1 4 3 
+0

да, спасибо, я просто жду сейчас, если кто-то будет знать, как решить первую часть проблемы :) – ayshelina