我正在研究Hadley的Advance R书的Names and Values章,并且正在努力在呈现的RMarkdown文件中表示“原位修改”主体。
如果我在RStudio中运行以下内容
library(lobstr)
v <- c(1, 2, 3)
obj_addr(v)
#> [1] "0x7fe6d48ff6f8"
v[[3]] <- 4
obj_addr(v)
#> [1] "0x7fe6d495cd78"
对于obj_addr
,我得到了不同的v
。我相信是因为
“ ...环境窗格必须按顺序引用每个对象 显示有关它的信息。这会使您的互动方式失真 探索但不影响函数内部的代码,等等 不会影响数据分析期间的性能。为了实验, 我建议直接从终端运行R或使用 RMarkdown”
直接在R中运行它时,会得到预期的输出。
library(lobstr)
v <- c(1, 2, 3)
obj_addr(v)
#> [1] "0x7f9bb683e138"
v[[3]] <- 4
obj_addr(v)
#> [1] "0x7f9bb683e138"
一个具有单个绑定的对象,该对象已在适当位置进行了修改,因此具有相同的对象地址。
但是,当我将.Rmd文件呈现为html文件时,我的输出与在RStudio中以交互方式运行代码时的输出相同。为什么这与哈德利的建议不一致?
我建议直接从终端运行R或使用 RMarkdown