Seite 1 von 1
Worin liegt der Unterschied?
Verfasst: Do Dez 02, 2021 6:10 pm
von wbart
Hallo zusammen,
ich habe folgende Beobachtung gemacht:
es sei ein beliebiger datensatz, den ich als x abgespeichert habe
dann wollte ich eine bestimmte Spalte als Zeilennamen definieren
Es erscheint die Fehlermeldung:
Code: Alles auswählen
Error in `.rowNamesDF<-`(x, value = value) : ungültige 'row.names' Länge
funktioniert.
in anderen Foren war die Lösung mit Adressierung [,] beschrieben. Ich frage aus prinzipiellen Gründen da man ja häufiger mal über [,] adressiert.
LG
Werner
diesem Datensatz
Re: Worin liegt der Unterschied?
Verfasst: Do Dez 02, 2021 8:07 pm
von bigben
Hallo,
das hier läuft bei mir glatt durch:
Code: Alles auswählen
bsp <- data.frame(x = LETTERS[1:10])
print(bsp)
rownames(bsp) <- bsp[,1]
print(bsp)
Wenn ich Deinen Fehler rekonstruieren will, kann ich anstelle des data.frames ein tibble verwenden:
Code: Alles auswählen
library(tibble)
bsp <- tibble(x = 11:21)
print(bsp)
rownames(bsp) <- bsp[,1]
print(bsp)
Aber von einem tibble war ja nicht die Rede. Kannst Du ein reproduzierbares Minimalbeispiel posten?
LG,
Bernhard
Re: Worin liegt der Unterschied?
Verfasst: Fr Dez 03, 2021 9:10 am
von jogo
Hallo Werner,
da
datensatz eventuell kein Dataframe ist (siehe
x <- as.data.frame(datensatz)), solltest Du für das Setzen der Zeilennamen vielleicht besser
verwenden.
Wenn allerdings
datensatz kein Dataframe ist, wie ist dann
datensatz$Spaltennahme möglich? ... das geht sonst nur bei Listen ... dann handelt es sich aber nicht um einen Spaltennamen sondern um den Namen eines Elementes der Liste. (Ein Hund wird nicht zur Katze, indem Du ihn Katze nennst.)
Bitte zeig uns mal den output von
Gruß, Jörg
Re: Worin liegt der Unterschied?
Verfasst: Fr Dez 03, 2021 10:51 am
von wbart
Hallo jogo,
der output des datensatzes mit str() ist:
> str(y)
'data.frame': 35137 obs. of 27 variables:
$ 1A_0h : num -1.243 5.227 -1.531 -3.962 0.445 ...
$ 1A_20h: num -0.93 5.201 -1.238 NA 0.149 ...
$ 1A_3h : num -1.345 5.063 -1.398 -5.843 0.792 ...
$ 1B_0h : num -0.592 6.029 -1.259 -5.165 -0.452 ...
$ 1B_20h: num -1.3 5.45 -1.52 -5.61 NA ...
$ 1B_3h : num -1.479 5.372 -1.468 -5.527 0.734
Viele Grüße
Re: Worin liegt der Unterschied?
Verfasst: Fr Dez 03, 2021 11:09 am
von jogo
Hallo Werner,
Du willst wirklich Gleitkommazahlen als Zeilennamen einsetzen?
Warum willst Du dies tun?
Gibt es NAs in der ersten Spalte? (was liefert any(is.na(y[[1]]))? )
Mit NAs konnte ich einen Fehler provozieren:
Code: Alles auswählen
datensatz <- BOD
x <- as.data.frame(datensatz)
x[3,2] <- NA
rownames(x) <- x[,2]
Wenn das alles keine Aufklärung bringt, benötigen wir ein reproduzierbares Beispiel. Mit dput(head(y)) kannst Du output generieren, den Du hier im Forum posten kannst.
Auch der output von sessionInfo() könnte sachdienlich sein.
Gruß, Jörg