Da eine Funktion, die ich verwende, ein Tabellenobjekt als Parameter benötigt, möchte ich ein mehrdimensionales Array in eine Tabelle konvertieren, aber ich habe Probleme mit Dimensionsnamen. Wie in der Hilfedatei as.table
angegeben, sollte der Parameter dnn
dimnames-Namen enthalten.R: Dimensionsnamen in Tabellen und mehrdimensionalen Arrays
dnn … the names to be given to the dimensions in the result (the dimnames names).
Aber selbst wenn dnn
Angabe, meine Tabellen von as.table
produziert haben keine Dimensionsnamen.
Der folgende Code veranschaulicht mein Problem.
>test <- table(c("a","b","c","c","c"),c("1","2","3","2","2"),dnn=c("letters","numbers"))
>test
numbers
letters 1 2 3
a 1 0 0
b 0 1 0
c 0 2 1
# this works perfectly
jetzt das gleiche versuchen, wenn die Tabelle aus einem Array Konstruktion:
>my2dimdata <- array(c(1,0,0,0,1,2,0,0,1),dim=c(3,3),
dimnames=list(c("a","b","c"),
c("1","2","3")))
>my2dimdata
1 2 3
a 1 0 0
b 0 1 0
c 0 2 1
# the array as expected
>my2dimtable <- as.table(my2dimdata,dnn=c("letters","numbers"))
>my2dimtable
1 2 3
a 1 0 0
b 0 1 0
c 0 2 1
# there are no dimnames
Vielen Dank! Beachten Sie auch, dass 'names (attributes (my2dimdata) $ dimnames) 'sich auf diese fraglichen Dimnamen bezieht, während' dimnames (my2dimdata) 'etwas völlig anderes ist. – mzuba