Podczas tworzenia ramki danych w R ciągi są domyślnie konwertowane na czynniki (co nie przeszkadza mi). Ale gdy chcę utworzyć nowy wiersz w mojej ramce danych, nie mogę znaleźć sposobu, aby zakodować łańcuch jako czynnik. Jeśli używam factor()
, ciąg jest konwertowany na liczbę, ale nadal nie jest czynnikiem. W każdym z tych scenariuszy nie mogę dołączyć nowego wiersza do ramki danych, ponieważ nowy wiersz nie jest czynnikiem. Chcę, aby mój nowy wiersz zachowywał się tak jak moja ramka danych, czyli z ciągiem konwertowanym na współczynnik.Łańcuch jako czynnik w R
> data.frame(c("Name one", "Name two")) -> my.data
> colnames(my.data) <- "Names"
> is.factor(my.data$Names)
[1] TRUE
> new.row1 <- c("Name three")
> is.factor(new.row1)[1]
[1] FALSE
> new.row2 <- c(factor("Name three"))
> new.row2
[1] 1
> is.factor(new.row2)[1]
[1] FALSE
> rbind(my.data, new.row1)
Names
1 Name one
2 Name two
3 <NA>
Warning message:
In `[<-.factor`(`*tmp*`, ri, value = "Name three") :
invalid factor level, NA generated
> rbind(my.data, new.row2)
Names
1 Name one
2 Name two
3 <NA>
Warning message:
In `[<-.factor`(`*tmp*`, ri, value = 1L) :
invalid factor level, NA generated
>
Zauważ, że 'c' usuwa wszystkie atrybuty. Dlatego konwertuje czynnik na liczbę całkowitą. – Roland