対象:POSIXltオブジェクトから取得したリストの最初の要素を出力する。抽出演算子 '[' - POSIXlt unclassed list prints datetime
コード:
> x <- as.POSIXlt(Sys.time())
> x
[1] "2016-06-18 23:51:14 IST"
> x[1]
[1] "2016-06-18 23:51:14 IST"
> x[[1]]
[1] 14.70887
> temp <- list(999,23,3)
> temp[1]
[[1]]
[1] 999
> temp[[1]]
[1] 999
我々は、単一の抽出物を用いたX POSIXltオブジェクトにアクセスする場合、全体の日時が印刷されているが、我々は同様に別のリスト(TEMP)にアクセスするときに、最初の要素が印刷されます、リストとして(単一のブラケット抽出が同じオブジェクトを返すので)。最初の要素は、二重ブラケット抽出を使用するときに取得されますが、Rに新しく、誰でもこれについていくつかの光を当てることができますか?
ここで問題となるのは、 'x'は単一の要素リストであり、' ['はリストのサブセットを表します。したがって、 'x [1]'は本質的に 'x'と同じオブジェクトで、' TRUE'を返す 'identical(x、x [1])'をチェックすれば検証できます。したがって、最初の要素を抽出するには 'x [[1]]'を使わなければなりません。これは 'length(x)== 1 'から' length(temp)== 3'までの間に 'x'と' temp'の類推を打破します。 – Psidom
@Psidomもしそれが一つの要素リストであると言うなら、そのリストの最初の要素にアクセスするには、最初の要素自体として 'x [[1]] [[1]]'を使う必要はないでしょうリストですか? xをunclassすると、メインリストの要素(リスト)ではなく、そのリストのすべての要素が返されます。 –
OK。これは確かに私が思ったより少し難解です。これについてもっと詳細な答えを出しました。 – Psidom