R: Starter 2

Aktualisiert:

weniger als 1 Minuten zum Lesen

Kleine Beispiele zu Listen und Dataframes in R

Listen

Listen sind so etwas wie eine Vektor, nur das eine Liste Daten verschiedener Datentypen aufnehmen kann. Die folgende Liste besteht aus Strings, Zahlen und Vektoren. Der Liste kann ein Namens-Vektor zugeordnet werden, dessen Daten als Schlüssel der einzelnen Datenfelder verwendet werden kann.

familie <- list("Mama","Papa", c("Kid1","Kid2","Kid3"),3,c(4,5,7))
names(familie) <- c("Mutter","Vater","Kinder","Wieviele Kinder","Alter der Kinder")
familie[1]
$Mutter
[1] "Mama"
familie[[1]]
[1] "Mama"
familie$Mutter
[1] "Mama"

Dataframes

Dataframes sind so ähnlich wie Matrizen und bestehen aus Vektoren mit Daten verschiedener Datentypen. Dataframes können über eine Variable zusammengeführt – gemerged – werden. Das entspricht in etwa einem JOIN in SQL.

particleNames <- c("Alice","Bob","Cora","Dave","Emma","Frank")
types <- c("Photon","Photon","Neutron","Proton","Elektron","Photon")
spins <- c(120, 108, 98, 45, 115, 100)
particleInfo <- data.frame(particleNames, types, spins)
particleInfo
head(particleInfo,3)
nrow(particleInfo)
[1] 6
ncol(particleInfo)
[1] 3
names(particleInfo)
[1] "particleNames" "types"         "spins"        
rownames(particleInfo)
[1] "1" "2" "3" "4" "5" "6"
colnames(particleInfo)
[1] "particleNames" "types"         "spins"        
dim(particleInfo)
[1] 6 3
# Merge Dataframes
df1 <- data.frame(custId = 1:3, custName = c("John","Janis","James"))
df1
df2 <- data.frame(custId = 1:3, custAge = c(36,36,26))
df2
df3 <- merge(df1, df2, by="custId")
df3
LS0tCnRpdGxlOiAiUjogU3RhcnRlciAyIgpvdXRwdXQ6CiAgaHRtbF9ub3RlYm9vazoKICAgIGNvZGVfZm9sZGluZzogbm9uZQogICAgZGZfcHJpbnQ6IGthYmxlCiAgICBoaWdobGlnaHQ6IHB5Z21lbnRzCiAgICB0aGVtZTogZmxhdGx5CiAgICB0b2M6IHllcwogIGh0bWxfZG9jdW1lbnQ6CiAgICBoaWdobGlnaHQ6IHB5Z21lbnRzCiAgICBrZWVwX21kOiB5ZXMKLS0tCgojIyBMaXN0ZW4KCkxpc3RlbiBzaW5kIHNvIGV0d2FzIHdpZSBlaW5lIFZla3RvciwgbnVyIGRhcyBlaW5lIExpc3RlIERhdGVuIHZlcnNjaGllZGVuZXIgRGF0ZW50eXBlbiBhdWZuZWhtZW4ga2Fubi4gRGllIGZvbGdlbmRlIExpc3RlIGJlc3RlaHQgYXVzIFN0cmluZ3MsIFphaGxlbiB1bmQgVmVrdG9yZW4uIERlciBMaXN0ZSBrYW5uIGVpbiBOYW1lbnMtVmVrdG9yIHp1Z2VvcmRuZXQgd2VyZGVuLCBkZXNzZW4gRGF0ZW4gYWxzIFNjaGzDvHNzZWwgZGVyIGVpbnplbG5lbiBEYXRlbmZlbGRlciB2ZXJ3ZW5kZXQgd2VyZGVuIGthbm4uCgpgYGB7cn0KZmFtaWxpZSA8LSBsaXN0KCJNYW1hIiwiUGFwYSIsIGMoIktpZDEiLCJLaWQyIiwiS2lkMyIpLDMsYyg0LDUsNykpCm5hbWVzKGZhbWlsaWUpIDwtIGMoIk11dHRlciIsIlZhdGVyIiwiS2luZGVyIiwiV2lldmllbGUgS2luZGVyIiwiQWx0ZXIgZGVyIEtpbmRlciIpCmZhbWlsaWVbMV0KZmFtaWxpZVtbMV1dCmZhbWlsaWUkTXV0dGVyCmBgYAoKIyMgRGF0YWZyYW1lcwoKRGF0YWZyYW1lcyBzaW5kIHNvIMOkaG5saWNoIHdpZSBNYXRyaXplbiB1bmQgYmVzdGVoZW4gYXVzIFZla3RvcmVuIG1pdCBEYXRlbiB2ZXJzY2hpZWRlbmVyIERhdGVudHlwZW4uIERhdGFmcmFtZXMga8O2bm5lbiDDvGJlciBlaW5lIFZhcmlhYmxlIHp1c2FtbWVuZ2Vmw7xocnQgLS0gZ2VtZXJnZWQgLS0gd2VyZGVuLiBEYXMgZW50c3ByaWNodCBpbiBldHdhIGVpbmVtIEpPSU4gaW4gU1FMLgoKYGBge3J9CnBhcnRpY2xlTmFtZXMgPC0gYygiQWxpY2UiLCJCb2IiLCJDb3JhIiwiRGF2ZSIsIkVtbWEiLCJGcmFuayIpCnR5cGVzIDwtIGMoIlBob3RvbiIsIlBob3RvbiIsIk5ldXRyb24iLCJQcm90b24iLCJFbGVrdHJvbiIsIlBob3RvbiIpCnNwaW5zIDwtIGMoMTIwLCAxMDgsIDk4LCA0NSwgMTE1LCAxMDApCnBhcnRpY2xlSW5mbyA8LSBkYXRhLmZyYW1lKHBhcnRpY2xlTmFtZXMsIHR5cGVzLCBzcGlucykKcGFydGljbGVJbmZvCmhlYWQocGFydGljbGVJbmZvLDMpCm5yb3cocGFydGljbGVJbmZvKQpuY29sKHBhcnRpY2xlSW5mbykKbmFtZXMocGFydGljbGVJbmZvKQpyb3duYW1lcyhwYXJ0aWNsZUluZm8pCmNvbG5hbWVzKHBhcnRpY2xlSW5mbykKZGltKHBhcnRpY2xlSW5mbykKCiMgTWVyZ2UgRGF0YWZyYW1lcwpkZjEgPC0gZGF0YS5mcmFtZShjdXN0SWQgPSAxOjMsIGN1c3ROYW1lID0gYygiSm9obiIsIkphbmlzIiwiSmFtZXMiKSkKZGYxCmRmMiA8LSBkYXRhLmZyYW1lKGN1c3RJZCA9IDE6MywgY3VzdEFnZSA9IGMoMzYsMzYsMjYpKQpkZjIKZGYzIDwtIG1lcmdlKGRmMSwgZGYyLCBieT0iY3VzdElkIikKZGYzCmBgYAoK