as.factorが使えない:Error in as.factor(., ***) : unused argument (***)

データの型を変更したいときは、as.factor()が使える。

> df$season %>%  as.factor(df$season)
Error in as.factor(., df$season) : unused argument (df$season)

しかし、上記のコードだと、エラーがでて因子型に変更できなかった。

指定したオブジェクトが使用されていないことによるエラーのようだが、対処方法を調べてもわからなかった。

しかし、いろいろやり方を調べたところ、以下のコードで無事因子型に変更することができた。

season <- as.factor(season)

もともとのやり方が間違っていたのか、原因不明。

念のため、class()でデータの型を確認してみる。

 class(df$season)
[1] "factor"

わからない点

as.factor() でデータの型が変更できたように見えたとしても、str()やglimpse()でデータの型を確認すると変更できていないときがある。

> as.factor(df$sex)   #因子型に変換
  [1] 0 1 1 1 0 1 1 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 1 0 1 0 1 0 0 1 1 1 1 0 1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 0 0 0 1 0 0 1 0 1 0
 [71] 1 0 1 1 0 0 1 0 0 0 0 0 0 1 0 1 0 1 0 0 1 1 1 1 0 1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 1 0 1 0 1 0 0
[141] 1 1 1 1 0 1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 1 0 1 0 1 0 0 1 1 1 1 0 1 0 1 1 1
Levels: 0 1     #2つのレベルの因子型に変換できたっぽい
> class(df$sex)   #型を確認
[1] "numeric"    #なぜかnumeric

返信を残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です