Rでデータフレームを作成するとき、文字列はデフォルトで因子に変換されます(これは気にしません)。しかし、データフレームに新しい行を作成したいときは、文字列を要素としてエンコードする方法を見つけることができません。 factor()
を使用した場合、文字列は数字に変換されますが、それはまだ要素ではありません。どちらのシナリオでも、新しい行は要素ではないため、データフレームに新しい行を追加することはできません。私が望むのは、私の新しい行を私のデータフレームのように振る舞わせることです。つまり、文字列を要素に変換します。Rの因子としての文字列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
>
「c」はすべての属性を削除することに注意してください。したがって、それは因子を整数に変換する。 – Roland