Sequence Verringerung R
Frage
Angenommen, Sie haben einen Vektor wie folgt:
v <- c(1,1,1,2,2,2,2,1,1,3,3,3,3)
Wie kann es am besten zu einem data.frame wie folgt reduziert werden?
v.df <- data.frame(value=c(1,2,1,3),repetitions=c(3,4,2,4))
In einer prozeduralen Sprache könnte ich nur Iterierte durch eine Schleife und bauen die data.frame wie ich gehen, aber mit einer großen Datenmenge in R ein solcher Ansatz ist ineffizient. Jede Beratung?
Lösung
oder einfach
data.frame(rle(v)[])
Andere Tipps
with(rle(v), data.frame(values, lengths))
sollten Sie bekommen, was Sie brauchen.
values lengths
1 3
2 4
1 2
3 4
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow