[
関数によって行列が追加された場合、data.frames
は行列の列名を継承しているようです。例:data.frameが新しい列を取得するとどうなりますか?
blob <- matrix(11:20, ncol = 1, dimnames = list(NULL, "BLOB"))
foo <- data.frame(FOO = 201:210)
dat <- data.frame(id = 1:10)
dat[, "new1"] <- blob
dat[, "new2"] <- foo
私は今dat
に見れば、それは私に
id BLOB new2
1 11 201
2 12 202
3 13 203
...
ので
期待"new1"
が示されていないが、"BLOB"
を示しています。 colnames(dat)
が"id"
,"new1"
,"new2"
であっても、さらに"BLOB"
はattributes(dat)
にありません。dat[, "BLOB"]
は「未定義列が選択されました」というエラーを示します。 つの質問:
- 、なぜこのような場合には
dat
ショー"BLOB"
なく"new1"
していますか? dat
を"BLOB"
の代わりに"new1"
と表示する方法を変更するにはどうすればよいですか?
'foo'のような' data.frame'を完全な列に割り当てることは、同様に危険です。 '< - foo [[1]]'または '< - foo [、1]'はうまく防御的です。 – Gregor
@MrFlick、これまでの回答に感謝します。あなたは埋め込み行列が何であるか(その目的を含む)、そしてそれらをどのように扱うのかを説明する(または参照する)ことができますか? – Qaswed