2016-03-31 13 views
0
start <- as.POSIXct("2016-01-17") 
end <- start + as.difftime(72, units="days") 
for(i in seq(from=start, by=60*60*24*7, to=end)) { 
     print(i) 
} 

上記のコードのとおり、2016年以降の日付は72日以内に印刷します。しかし、出力は常に1453006800のような数値です。私はas.Date、as.Date(i、origin = "2016-01-17 00:00:00 EST")を含むと考えることができるすべてを試しました...ありがとう!POSIXctの日付形式の印刷方法

+1

:あなたは次のようにwhileループを使用することができます/ 6434663 /日付オブジェクト上の結果オブジェクトの結果の反復子) –

+0

おかげさまで多くの!それは最終的に動作します! – user5843090

答えて

1

"start"と "end"はPOSIXの日付オブジェクトですが、 "i"はそうではありません。これは、その構造を確認することは明白である:

> str(start) 
POSIXct[1:1], format: "2016-01-17" 
> str(i) 
num 1.46e+09 

あなたは「i」の数値に強制変換されているように見える代わりに「について」の他のループ機能を使用することができます。 http://stackoverflow.com/questions((スタート) ``プリント(I) `の前に、[ここ]説明クラス - `クラス(I)<を入れてみてください

> i = start 
> while (i < end) { 
i = i + 60*60*24*7 
print(i) 
} 
+0

お返事ありがとうございました! Hadd E. Nuffのソリューション:class(i)< - class(s​​tart)はうまくいきます! – user5843090