Właśnie zaczynam od R i napotkałem dziwne zachowanie: podczas wstawiania pierwszego wiersza w pustej ramce danych, oryginalne nazwy kolumn zostaną utracone.R: utrata nazw kolumn podczas dodawania wierszy do pustej ramki danych
przykład:
a<-data.frame(one = numeric(0), two = numeric(0))
a
#[1] one two
#<0 rows> (or 0-length row.names)
names(a)
#[1] "one" "two"
a<-rbind(a, c(5,6))
a
# X5 X6
#1 5 6
names(a)
#[1] "X5" "X6"
Jak widać, nazwy kolumn jeden i dwa zostały zastąpione przez X5 i X6.
Czy ktoś mógłby mi powiedzieć, dlaczego tak się dzieje i czy jest to właściwy sposób bez utraty nazw kolumn?
Rozwiązaniem z zakresu strzelby byłoby zapisanie nazw w pomocniczym wektorze, a następnie dodanie ich z powrotem po zakończeniu pracy nad ramką danych.
Dzięki
Kontekst:
stworzyłem funkcję która gromadzi pewne dane i dodaje je jako nowy wiersz do ramki danych otrzymanych jako parametr. Tworzę ramkę danych, iteruję przez moje źródła danych, przekazując dane.frame do każdego wywołania funkcji w celu uzupełnienia ich wynikami.
Myślę, że w twoim kodzie '' rbind' A' wewnątrz jest ignorowany, więc jest to w istocie równoważne 'a <- data.frame (jeden = 5, two = 6) '. Ale mogę się mylić. – juba
+1 Zwykle używam tego podejścia - zauważ, że możesz po prostu zainicjować "a" na pustym wektorze: 'a <- c()'. –
@juba, może tak być, ponieważ data.frame 'a' jest puste. –