2016-12-13 5 views
1

forループの日付を数値に変換するのを避けるにはどうすればよいですか?これは、それが、ベクトル、リスト、またはいくつかの他のものでない限り、forループは、ベクトルにシーケンスを強制しmapply disabling mapply automatically converting Dates to numeric日付を自動的に数値に変換するのを避ける方法は?

date <- c('2008-02-20','2009-10-05') 
date <- as.Date(date, format = '%Y-%m-%d') 
date 
[1] "2008-02-20" "2009-10-05" 
for (i in date) print(i) 
[1] 13929 
[1] 14522 

disabling mapply automatically converting Dates to numeric

+1

'ベースRでDate'クラスはエポックからの日数として日付を格納するので、何を見ていると、本当の基礎となるデータです。あなたの質問は、本当にそのデータの提示です。 –

+0

これは面倒ですが、次のように変換することができます: 'for(i in date)print(as.Date(i、origin = '1970-01-01'))' ' – alistaire

答えて

4

に同じ挙動を示し、この質問に関連しています。 dateはベクトルではなく、日付のベクトルなどはありません。だから、あなたはベクトルに強制から保護するためにas.listが必要:

for (d in as.list(date)) print(d) 
関連する問題