[英]as.factor conversion error
我正在嘗試將數據幀中的三個字符變量轉換為因數,而這三個變量之一始終會出錯。 有問題的變量fund.category具有四個可能的值:“未定義”,“小”,“大型現有”和“大型新建”。 我的代碼如下-我首先使用XLConnect從excel工作表中讀取數據幀,然后刪除不必要的變量並將其重命名為我保留的變量:
a.projects <- readWorksheet(wb, sheet = "ProjectsDetail")
a.projects.2 <- a.projects[c("ProjectNumber", "BusinessType", "Fund.Category")]
a.projects.2 <- rename(a.projects.2,
c("ProjectNumber" = "project.number",
"BusinessType" = "business.type",
"Fund.Category" = "fund.catetgory"))
str(a.projects.2)
a.projects.2$project.number <- as.factor(a.projects.2$project.number)
a.projects.2$business.type <- as.factor(a.projects.2$business.type)
a.projects.2$fund.category <- as.factor(a.projects.2$fund.category)
這是a.projects.2的結構,它是在我嘗試進行因子轉換之前生成的:
'data.frame': 4291 obs. of 3 variables:
$ project.number: chr "APS-10-02825" "APS-10-02826" "APS-10-02876" "APS-10-03134" ...
$ business.type : chr "Office" "Office" "Process Industrial" "K-12 School" ...
$ fund.catetgory: chr "Undefined" "Undefined" "Large Existing" "Large New Construction" ...
這是來自控制台的錯誤:
a.projects.2$fund.category <- as.factor(a.projects.2$fund.category)
Error in `$<-.data.frame`(`*tmp*`, "fund.category", value = integer(0)) :
replacement has 0 rows, data has 4291
對於其他兩個字符變量(project.number和business.type),相同的代碼未產生任何錯誤。 任何想法為什么這不起作用?
您在先前的聲明中拼寫了“ fund.category”:
a.projects.2 <- rename(a.projects.2,
c("ProjectNumber" = "project.number",
"BusinessType" = "business.type",
"Fund.Category" = "fund.catetgory"))
修正錯字,應該很開心:-)
要了解錯誤,
a.projects.2$fund.category
返回NULL
as.factor(NULL)
返回factor(0)
並且是在將factor(0)
分配給a.projects.2$fund.category
出現錯誤:
Error in `$<-.data.frame`(`*tmp*`, "fund.category", value = integer(0)) :
replacement has 0 rows, data has 4291
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.