修正方法: 文字列は明確な標準形式ではありません
R で発生する可能性のある一般的なエラーは次のとおりです。
Error in as.POSIXlt.character(x, tz, ...):
character string is not in a standard unambiguous format
このエラーは通常、R のオブジェクトを日付形式に変換しようとしたときに、そのオブジェクトが現在文字または因子である場合に発生します。
このエラーを修正するには、まずオブジェクトをデジタルに変換する必要があります。
このチュートリアルでは、このエラーを実際に修正する方法を説明します。
エラーを再現する方法
R に次のデータ フレームがあるとします。
#create data frame
df <- data. frame (date=c('1459397140', '1464397220', '1513467142'),
sales=c(140, 199, 243))
#view data frame
df
dirty date
1 1459397140 140
2 1464397220 199
3 1513467142 243
ここで、日付列の値を日付形式に変換しようとしているとします。
#attempt to convert values in date column to date
df$date <- as. POSIXct (df$date, origin=' 1970-01-01 ')
Error in as.POSIXlt.character(x, tz, ...):
character string is not in a standard unambiguous format
現在、日付列の値が文字形式になっており、 as.POSIXct()関数で処理できないため、エラーが発生します。
エラーを修正する方法
このエラーを修正するには、 as.numeric()を使用して、最初に日付列の値を数値形式に変換する必要があります。これは、 as.POSIXctが処理できる形式です。
#convert values in date column to date
df$date <- as. POSIXct (as. numeric (as. character (df$date)), origin=' 1970-01-01 ')
#view updated data frame
df
dirty date
1 2016-03-31 04:05:40 140
2 2016-05-28 01:00:20 199
3 2017-12-16 23:32:22 243
今回は、最初に値を数値形式に変換したため、エラーは発生せず、日付列の値を日付形式に正常に変換できます。
追加リソース
次のチュートリアルでは、R の他の一般的なエラーを修正する方法について説明します。
修正方法: オブジェクト (リスト) に「double」を強制的に入力することはできません
R での修正方法: ExtractVars の無効なテンプレート式
R での修復方法: 置換の長さはゼロです