Characters

Pakete mit Funktionen für Characters sind unter anderem base, gsubfn und Hmisc. Hier einige nützliche Funktionen.

  1. Paket base:

    Ist das ein Character?

    is.character("Das ist ein Character.")
    [1] TRUE

    Anzahl der Zeichen

    nchar("Das ist ein Character.")
    [1] 22

    Character trennen anhand einer Trennzeichenfolge

    strsplit(c("Das ist","ein Character."),split=" ")
    [[1]]
    [1] "Das" "ist"
    [[2]]
    [1] "ein" "Character."

    Character verbinden anhand einer Trennzeichenfolge

    paste("Das","ist","ist","ein","Character.",sep=" ")
    [1] "Das ist ist ein Character."
    paste("Das","ist",sep="Trennzeichenfolge")
    [1] "DasTrennzeichenfolgeist"

    die ersten n = 5 Zeichen eines Characters

    strtrim(c("Das ist","ein Character."),width=5)
    [1] "Das i" "ein C"

    von Zeichen i = 2 bis Zeichen j = 6 eines Characters

    substr(c("Das ist","ein Character."),2,6)
    [1] "as is" "in Ch"

    Characters in Kleinbuchstaben oder Großbuchstaben verwandeln

    tolower(c("Das ist","ein Character."))
    [1] "das ist" "ein character."
    toupper(c("Das ist","ein Character."))
    [1] "DAS IST" "EIN CHARACTER."
    casefold(c("Das ist","ein Character."),upper=FALSE)
    [1] "das ist" "ein character."

    eine einzelne Zeichenfolge von einem Character austauschen

    chartr(old="a",new="A",c("Das ist","ein Character."))
    [1] "DAs ist" "ein ChArActer."

    bestimmte Zeichen mittels eines Pattern von einem Character austauschen

    gsub("[A-Z]+","_","dgG33.2JdfgGHHJG54:79HGFff,8F")
    [1] "dg_33.2_dfg_54:79_ff,8_"

    Genaueres über Pattern in R findet man unter [1].

  2. Paket gsubfn:

    bestimmte Zeichenfolgen mittels eines Pattern [1] in einem Character finden

    strapply("dgG33.2JdfgGHHJG54:79HGFff,8F","\\.")
    [[1]]
    [1] "."
    strapply("dgG33.2JdfgGHHJG54:79HGFff,8F","\\..")
    [[1]]
    [1] ".2"
    strapply("dgG33.2JdfgGHHJG54:79HGFff,8F","\\..*")
    [[1]]
    [1] ".2JdfgGHHJG54:79HGFff,8F"
    strapply("dgG33.2JdfgGHHJG54:79HGFff,8F","\\..*:")
    [[1]]
    [1] ".2JdfgGHHJG54:"
    strapply("dgG33.2JdfgGHHJG54:79HGFff,8F","\\.[^:]*")
    [[1]]
    [1] ".2JdfgGHHJG54"
    strapply("12;3,5,6.245,22.1;32.1","[[:digit:]]+")
    [[1]]
    [1] "12" "3" "5" "6" "245" "22" "1" "32" "1"
    strapply("12;3,5,6.245,22.1;32.1","[0-9]+")
    [[1]]
    [1] "12" "3" "5" "6" "245" "22" "1" "32" "1"
    strapply("1d,fvhEilO46f6,.0h","[a-z]+")
    [[1]]
    [1] "d" "fvh" "il" "f" "h"
    strapply("1d,fvhEilO46f6,.0h","[a-z]")
    [[1]]
    [1] "d" "f" "v" "h" "i" "l" "f" "h"
    strapply("1d,fvhEilO46f6,.0h","[^A-Z]+")
    [[1]]
    [1] "1d,fvh" "il" "46f6,.0h"
    strapply("1d,fvhEilO46f6,.0h","[a-zA-Z]")
    [[1]]
    [1] "d" "f" "v" "h" "E" "i" "l" "O" "f" "h"
    strapply("1736292650284","[0-9]{3}")
    [[1]]
    [1] "173" "629" "265" "028"

    eine weitere Möglichkeit mit der Funktion strapply()

    strapply("sdhgdsjkeiasghshhf","[a-z]",function(x){if(x=="h"){return(1)}})
    [[1]]
    [1] 1 1 1 1
  3. Paket Hmisc:

    den Anfangbuchstaben eines Characters als Großbuchstabe

    capitalize(c("das","ding"))
    [1] "Das" "Ding"

    Variablen in Character wandeln

    Cs(Haus,Maus)
    [1] "Haus" "Maus"

    das erste Wort eines Characters

    first.word("Das Ding")
    [1] "Das"

zurück


Quellen:
[1] Regular Expressions as used in R
R: help(regex) bzw. ?regex
Zugriff: 27.6.2009
[2] gsubfn, reference manual
http://cran.r-project.org/web/packages/gsubfn/index.html
Zugriff: 27.6.2009
[3] Hmisc, reference manual
http://cran.r-project.org/web/packages/Hmisc/index.html
Zugriff: 27.6.2009

6.7.2009 (R: 2.9.0)