2017-05-30 7 views
-2

L'une des colonnes de mon jeu de données est "Movement_Stats", elle contient "forward", "backward" et "Stop". Chaque ligne représente un cadre d'image. Cette colonne ressemble donc à: "en avant, en avant, en avant, en arrière, en avant, en avant ...". Je veux lisser les valeurs catégoriques de cette colonne par la règle:Lissage d'une séquence de données catégorielles dans R

  1. Pour chaque ligne, vérifiez ses 5 précédentes lignes et prochaines 5 lignes (son voisin)
  2. réattribuer la valeur de cette ligne par la VOTE MAJORITAIRE de son voisin

Je ne trouve pas de paquet que je peux utiliser dans R.

+0

[demander] et [mcve] – jogo

Répondre

0

Vous pouvez utiliser rollapply du package zoo avec table:

mov <- c("forward", "backward", "stop") 
s <- sample(mov, 1000, replace = TRUE) 

zoo::rollapply(s,11, function(x) names(which.max(table(x))))