簡體   English   中英

R將因子名稱視為一個級別

[英]R considers factor name as a level

我從Excel文件中獲取數據(兩個變量,一個是分類變量,另一個是數字變量),然后將它們的類型分別更改為factor和numeric:

setwd("D:/Desktop/")
db_nouns = read.table ("Final_Database.txt")
db_nouns = db_nouns [2:507,]
colnames (db_nouns) = c ("category", "space")
db_nouns$category = as.factor (db_nouns$category)
db_nouns$space = as.numeric(as.character(db_nouns$space))

現在,我想安排因子級別(針對類別),以便它們以特定順序出現在繪圖中(以后):

levels (db_nouns$category) = c( "Ground", "Building", "Tool_precise_grip", "Tool_power_grip", "Food", "Clothes", "Animal", "Object", "Transport", "Action", "Body_Part", "Sense_Phys", "Sound", "Sense_Emotion", "Intelligence", "Space")

但是,當我這樣做時,我得到一個錯誤:

*Error in `levels<-.factor`(`*tmp*`, value = c("Ground", "Building", "Tool_precise_grip",  : 
  number of levels differs*

如果我在db_nouns $ category中檢查級別,則會得到另一個稱為“ category”的級別,即R將因子的名稱視為級別之一(請參見下面的第5行)。 我怎樣才能解決這個問題?

> levels (db_nouns$category)
 [1] "Action"            "Animal"            "Body_Part"         "Building"         
 [5] "Category"          "Clothes"           "Food"              "Ground"           
 [9] "Intelligence"      "Object"            "Sense_Emotion"     "Sense_Phys"       
[13] "Sound"             "Space"             "Tool_power_grip"   "Tool_precise_grip"
[17] "Transport" 

讀取數據時使用stringsAsFactors=T ,並且header = T

db_nouns <- read.table("Final_Database.txt", stringsAsFactors = T, header = T)

colnames(db_nouns) <- c ("category", "space")

new_order <- c( "Ground", "Building", "Tool_precise_grip", "Tool_power_grip", "Food", "Clothes", "Animal", "Object", "Transport", "Action", "Body_Part", "Sense_Phys", "Sound", "Sense_Emotion", "Intelligence", "Space")

db_nouns$category <- factor(db_nouns$category, levels = new_order)

暫無
暫無

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

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