2016-07-22 5 views
0

以下のデータとコードは、?? data.tableとexample(data.table)のものです。なぜdata.tableの副作用としてNULLを取得するのですか?

DT = data.table(x=rep(c("a","b","c"),each=3), y=c(1,3,6), v=1:9) 
DT[2:5,cat(v,"\n")]  # just for j's side effect 

2 3 4 5 
NULL 

cat(v)の後にNULLが返される理由はわかりません。 NULLを取得できませんか?

答えて

4

あなたは、すなわち、データテーブルのj位置での発現のでcat戻りNULLNULLを取得するので、あなたが返さNULL値を取得し、値をキャプチャする一切の変数が存在しないので、それは、コンソールに出力されますデフォルト。あなたはそれが印刷を取得したくない場合は、変数に割り当てることができます。

x <- DT[2:5, cat(v, "\n")] 
# 2 3 4 5 
x 
# NULL 
+0

おかげで多くのことを。今私は最初に2,3,4,5を得る理由を混同しています。それについても簡単に説明できますか? – Darren

+1

あなたはcat機能の副作用のため2,3,4,5を得ます。データテーブルのiの位置に2:5を指定した場合、catはインデックスv:2でベクトルvを出力し、この場合は2,3,4,5となります。 – Psidom

+0

ありがとう!今すぐ取得します – Darren

関連する問題