6

R でデータ フレームを作成する場合、文字列はデフォルトで係数に変換されます (気にしません)。しかし、データ フレームに新しい行を作成したい場合、文字列を要素としてエンコードする方法が見つかりません。を使用するfactor()と、文字列は数値に変換されますが、それでも要素ではありません。どちらのシナリオでも、新しい行は要素ではないため、新しい行をデータ フレームに追加できません。私が望むのは、新しい行をデータ フレームと同じように動作させることです。つまり、文字列を係数に変換します。

> 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
> 
4

2 に答える 2

1

たぶん、このような何かがあなたを助けるつもりですか?

data.frame(c("Name one", "Name two")) -> my.data
colnames(my.data) <- "Names"

rbind(my.data, data.frame(Names="name three"))
于 2013-06-03T12:00:20.473 に答える