rbind char vector to data frame
15,402
Solution 1
You can store your information in a character matrix. Of course, you can convert this matrix into a data frame using as.data.frame
and the argument stringsAsFactors = FALSE
.
> test <- matrix(c("hi","i","am","bob"), nrow = 1)
> test <- rbind(test, c("hi","i","am","alice"))
> test
[,1] [,2] [,3] [,4]
[1,] "hi" "i" "am" "bob"
[2,] "hi" "i" "am" "alice"
> testDF <- as.data.frame(test, stringsAsFactors = FALSE)
> testDF <- rbind(testDF, c("hi","i","am","happy"))
> testDF
V1 V2 V3 V4
1 hi i am bob
2 hi i am alice
3 hi i am happy
Solution 2
Problem is that R, by default, understands characters as factors. In order to avoid this behaviour:
options(stringsAsFactors = FALSE)
test <- data.frame()
test<-rbind(test,c("hi","i","am","bob"))
test<-rbind(test,c("hi","i","am","alice"))
Author by
user3182532
Updated on June 09, 2022Comments
-
user3182532 almost 2 years
> test <- data.frame() > test<-rbind(test,c("hi","i","am","bob")) > test<-rbind(test,c("hi","i","am","alice")) Warning message: In `[<-.factor`(`*tmp*`, ri, value = "alice") : invalid factor level, NAs generated
Why does this minimal example produce that error? I want to append several string-rows to an empty data frame.
-
Rainfall.NZ almost 3 yearsAs of R 4.0.0 data.frame() default has changed to stringAsFactors = FALSE, so it no longer has to be explicitly changed. The original problem no longer occurs