データ フレーム内の 3 つの文字変数を係数に変換しようとしていますが、3 つのうちの 1 つでエラーが発生し続けます。問題のある変数、fund.category には、"未定義"、"小規模"、"大規模な既存"、"大規模な新築" の 4 つの値があります。私のコードは次のとおりです-最初に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
同じコードで、他の 2 つの文字変数 (project.number と business.type) ではエラーは発生しませんでした。これが機能しない理由はありますか?