さんごー日記。

映画や本やゲームの感想をゆるく記録したり、プログラミングの勉強をゆるく記録するゆるい日記です。

Rのplyrパッケージ使用時のエラー。「'names' 属性 [11] はベクトル [1] の長さと同じでなければなりません」への対処。

Rのplyrパッケージの関数を使っていると以下のようなエラーが出る事がある。

attributes(out) <- attributes(col) でエラー: 

'names' 属性 [11] はベクトル [1] の長さと同じでなければなりません

 

コンソールのキャプチャ画像↓

f:id:thirtyfive:20170731111340p:plain

 

エラーメッセージを見ても意味が分からない。ここから推察するのは無理であった。

 

原因はddply等の関数に渡す元データにPOSIXlt型が含まれているとダメらしい。

日付型のデータをas.character()で文字列型に変換するか、as.POSIXct()で日付型を変換するとエラーが無くなり、うまくいく。

 

Rは日付型による環境依存がよく起こるという特性があるみたいですね。

 

↓日付型の問題関連の記事。

RのstrptimeがNAを返す場合の対処法

 

「入門 機械学習」のコードを動かしてこの問題に遭遇しました。困った方の参考になれば。

入門 機械学習

入門 機械学習

  • 作者: Drew Conway,John Myles White,萩原正人,奥野陽,水野貴明,木下哲也
  • 出版社/メーカー: オライリージャパン
  • 発売日: 2012/12/22
  • メディア: 大型本
  • 購入: 2人 クリック: 41回
  • この商品を含むブログ (11件) を見る