全球环境中的价值观与数据 R

Values in the Global environment vs Data R

为什么值在全局环境中可见,但无法像 "Data" 部分中的数据那样访问?例如,我可以在数据部分查看 table,但不能在值部分查看值对象。他们在其他方面似乎也有所不同。

我猜你正在看这样的东西:

"Data" 项目 npk 显示 MASS 包有一个 .Rdata 文件保存该项目,当包获取时,它使用 data 函数加载到工作区从库中加载。您可以使用控制台查看它:

> str(npk)
'data.frame':   24 obs. of  5 variables:
 $ block: Factor w/ 6 levels "1","2","3","4",..: 1 1 1 1 2 2 2 2 3 3 ...
 $ N    : Factor w/ 2 levels "0","1": 1 2 1 2 2 2 1 1 1 2 ...
 $ P    : Factor w/ 2 levels "0","1": 2 2 1 1 1 2 1 2 2 2 ...
 $ K    : Factor w/ 2 levels "0","1": 2 1 1 2 1 2 2 1 1 2 ...
 $ yield: num  49.5 62.8 46.8 57 59.8 58.5 55.5 56 62.8 55.8 ...

如果您单击该窗格右侧与数据框名称位于同一行的微小 table-icon,这些值将显示在 "viewer"-window.使用 console-pane 中的 View(npk) 可以实现相同的效果。 'npk' 下面标记为 "promises" 的其他项目在您的控制台命令或函数访问它们时,每个项目将在环境窗格中变得更加实例化或 "real":

> View(npk)
> str(abbey)
 num [1:31] 5.2 6.5 6.9 7 7 7 7.4 8 8 8 ...
> accdeaths[1]
[1] 9007

所以现在该窗格看起来像:

"promises"已完成! R 实际上是一种 pass-by-promise 语言(非常像 pass-by-value 而 而不是 像 pass-by-refernce),所以有时变量名可能先于它们存在于工作区中实际上被称为存在,即被评估。