Hur man arbetar med variabelnamn i R

November 6

Variabler i en dataram i R alltid måste ha ett namn. För att komma åt variabelnamn, kan du återigen behandla en dataram som en matris och använda funktions colnames () så här:

> colnames (employ.data)
[1] "anställd" "lön" "startdatum"

Men i själva verket, detta tar den långa vägen runt. Vid en dataramen, låter colnames () funktionen det hårda arbetet utföras internt av en annan funktion, namnen funktions (). Så, för att få de variabelnamn, du kan bara använda den funktionen direkt så här:

> namn (employ.data)
[1] "anställd" "lön" "startdatum"

Liknar hur du gör det med matriser, kan du använda samma funktion att tilldela nya namn på variablerna också. Till exempel, för att byta namn på den rörliga startdatum till firstday, kan du använda följande kod:

> namn (employ.data) [3] <- 'firstday "
> namn (employ.data)
[1] "anställd" "lön" "firstday"

En viktig skillnad mellan en matris och en dataramen är att dataramar alltid har namngett observationer. De rownames () returnerar NULL om du inte ange rad namn på en matris, kommer det alltid att ge ett resultat i fallet med en dataramen.

Kontrollera resultatet av följande kod:

> rownames (employ.data)
[1] "1" "2" "3"

Som standard rad- namn - eller observations namn - på ett dataramen är helt enkelt radnummer i teckenformat. Du kan inte bli av med dem, även om du försöker ta bort dem genom att tilldela NULL värde som du kan göra med matriser.

Du bör inte försöka bli av med dem heller, eftersom dataramen inte visas korrekt längre om du gör.

Du kan dock ändra rad- namnen precis som du gör med matriser, helt enkelt genom att tilldela värdena via rownames () funktionen, som den här:

> Rownames (employ.data) <- c ("Chef", "BigChef ',' BiggerChef ')
> Employ.data
anställdes lön firstday
Chef John Doe 21000 2010-11-01
BigChef Peter Gynn 23400 2008-03-25
BiggerChef Jolie Hope 26800 2007-03-14

Låt dig inte luras, men: Namnen Row kan se ut en annan variabel, men du kan inte komma åt dem på det sätt du komma åt andra variabler.