簡體   English   中英

字符串作為R中的因子

[英]String as factor in R

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

訣竅是只rbind一個data.frame與另一data.frame ,而不是像你所做的一切,用一個簡單的vector

my.data <- data.frame(Names = c("Name one", "Name two"))
new.row1 <- data.frame(Names = c("Name three"))
rbind(my.data, new.row1)

##        Names
## 1   Name one
## 2   Name two
## 3 Name three

也許這樣的事情會對你有所幫助嗎?

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

rbind(my.data, data.frame(Names="name three"))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM