kezdeni megérteni, hogyan kell megfelelően rendezni adatkeretek R
, mi természetesen először létre kell hozni egy adatkeret manipulálni.
megjegyzés: a távolság nem szükséges, de javítja az olvashatóságot.,
run.R
parancsfájl a vektorok listáját az adatkeretben a várt módon adja meg:
$ Rscript run.R x y z1 apple a 42 orange d 33 banana b 24 strawberry c 1
A rendezési funkció
, bár talán nem a legegyszerűbb rendezési módszer a szintaxis szempontjából, aR
összes telepítéséhez a legkönnyebben elérhető, mivel abase
modul része, aorder
függvény.,
a order
függvény számos érvet fogad el, de a legegyszerűbb szinten az első argumentumnak értékek vagy logikai Vektorok sorrendjének kell lennie.,
például használhatjuk a order()
, hogy egyszerűen valamilyen vektor öt véletlenszerűen rendelt számok ez a szkript:
# Create unordered vectorvector = c(2, 5, 1, 3, 4)# Print vectorvector# Sort in ascending ordervector
Végrehajtó a forgatókönyvet, azt látjuk, hogy a kezdeti kimenet a rendezetlen vektor, amelyet a most rendezett lista utána:
$ Rscript run.R 2 5 1 3 4 1 2 3 4 5
Rendezés Adatok Keret által Vektor Neve
a order()
függvény a szerszám övet, majd a start válogatás az adatok keret átadásával a vektor nevek belül az adatok keret.,
például, segítségével a korábban generált dataframe
objektum, mi lehet a rendezés a vector z
hozzáadásával a következő kódot, hogy a script:
# Sort by vector name dataframe
Mi vagyunk hatékonyan csinálja, hívja az eredeti dataframe
objektumot, majd halad az új index érdekében, hogy szeretnénk., Ez az index sorrend a with()
függvény segítségével jön létre, amely hatékonyan létrehoz egy új környezetet az első argumentumban átadott adatok felhasználásával, valamint egy kifejezést az adatok értékelésére a második argumentumban.
így újraértékeljük a dataframe
adatokat a order()
függvény segítségével, és a z
vektor alapján szeretnénk megrendelni az adatkereten belül., Ez egy új index sorrendet ad vissza az adatkeret értékekhez, amelyet végül a dataframe
értékel, kiadva az új megrendelt eredményt.
$ Rscript run.R x y z1 apple a 42 orange d 33 banana b 24 strawberry c 1 x y z4 strawberry c 13 banana b 22 orange d 31 apple a 4
következésképpen látjuk az eredeti rendezetlen kimenetet, amelyet egy második kimenet követ, az adatokatz
oszlop szerint rendezve.
A fenti módszerhez hasonlóan a index
egy oszlop numerikus alapján is rendezhető az adatkeretben, nem pedig az adott név.,
a with()
funkció használata helyett egyszerűen átadhatjuk a order()
függvényt a dataframe
függvénynek. Jelezzük, hogy a 1
oszlop szerint szeretnénk rendezni a dataframe
szintaxis használatával, ami R
az index 1
szintjeinek (neveinek) visszaadásához., Más szóval, hasonlóan a z
vektornévhez, order
az index 1
:
dataframe ),]
ahogy az várható volt, megkapjuk a normál kimenetet, majd az első oszlopban a rendezett kimenetet:
$ Rscript run.R x y z1 apple a 42 orange d 33 banana b 24 strawberry c 1 x y z1 apple a 43 banana b 22 orange d 34 strawberry c 1
több oszlop szerinti rendezés
egyes esetekben több oszlopra is sorolható. Szerencsére ez nagyon egyszerű a korábban leírt módszerekkel.,
A rendezés több oszlop segítségével vektor nevek, egyszerűen csak további érv, hogy a order()
függvény hívás, mint korábban:
# Sort by vector name then dataframe
Hasonlóképpen, a rendezés több oszlop alapján oszlop index, további érv, hogy a order()
a különböző indexek:
# Sort by column index then dataframe, dataframe ),]
Vélemény, hozzászólás?