2016-09-07 3 views
3

インデックスの値にアクセスするとき、または直接アクセスするときに異なる値が表示される理由を理解しようとしています。インデックスまたは値で印刷すると、ループ内の値を印刷すると異なる結果が表示される

ws <- c(as.Date('2016-01-01')) 

for (w in ws) { 
    print(w) 
} 
# prints 16801 

for (idx in 1:length(ws)) { 
    print(ws[idx]) 
} 
# prints 2016-01-01 

最初に、私がinを使用して値にアクセスした理由が間違っています。

in(インデックスを使用しない)経由で直接値を印刷するにはどうすればよいですか?そしてなぜそれは起こっているのですか?

答えて

2

おそらくwsは実際には整数なので、表示される「日付」は印刷目的のためのものですが、データは開始点から日数として追跡されます。

インデックス変数w in wsを作成すると、Rはおそらく整数に強制的に変換されるため、wはすべての「日付」属性を失います。そのすべてが基礎となる整数です。

は確かに、?Controlに我々はseqのためにそれを参照してください。

(リストと 発現を含む)は、ベクトルまたはpairlistまたはNULLに評価される式。因数の値は文字ベクトルに強制的に変換されます。

as.vector(ws)は、その基本的な整数、状態に戻ります。ws

2番目の例では、wsは変更されていないため、その要素の印刷は引き続き日付として行われます。

関連する問題