【问题标题】:Difference between "Data" and "Values" in RR中“数据”和“值”之间的区别
【发布时间】:2016-12-05 21:16:36
【问题描述】:

我最近从 STATA 转换到 R。我使用 RSStudio 作为我的 IDE。我发现我的一些变量进入 RStudio 的“数据”部分,一些进入“值”。这些在“环境”窗口中。我用谷歌搜索了一下,发现 R 中有一些我遗漏的主要概念。 “数据”和“值”有什么区别?如果有人可以发布一个变量何时进入数据部分以及何时进入值部分的示例,那就太好了。

这是我指的链接:https://support.rstudio.com/hc/en-us/community/posts/202201648-What-is-the-difference-between-Data-and-Values-in-the-Environment-pane-

如果有任何想法,我将不胜感激。

【问题讨论】:

  • 删除了“环境变量”标签,因为它不适用于相关问题。

标签: r rstudio


【解决方案1】:

您不会错过“R 中的主要概念”。您缺少的是 RStudio 出于自身原因(认为它无疑是在帮助用户)选择将数据帧与其他对象(例如没有“data.frame”类的列表)隔离开来。 R 中没有“数据”或“值”类,您不会在 R 手册中找到这种区别。那是 RStudio 在工作,而不是 R 的一部分。当我阅读 Jonathon 对引用问题的回答时,我的猜测是该决定是基于 R 对象是否具有维度属性,因为他说矩阵和框架也将列在“价值观”。我认为更准确的标签是“尺寸对象”和“无尺寸、非语言对象”。列表显示但原子向量没有显示,我有点惊讶(与 Jonathon 相反)。也许有一个开关可以在某处抛出以在该面板中显示原子向量的名称?

这在数据部分:

dat <- data.frame(a=1:10, b=letters[1:10])

这会将其移至“值”部分:

dat <- unclass(dat)

我承认曾经有过我想要这些信息并且(最终)通过运行这样的东西得到它的时候:

> ls()[ lapply( mget( ls() ) , class) == "data.frame" ]
[1] "air1"   "air2"   "dat"    "df"     "dfCord" "fsub"   "mtcars" "test"  

【讨论】:

  • 以物体有无尺寸为标准的说法并不完全正确。具有除两个以外的任何维度的数组也显示为值而不是数据。正如你所说:列表和其他带有插槽的对象被列为数据。
  • 所以标准可能是长度(dim(obj))==2?
【解决方案2】:

这纯粹是 RStudio 的不同之处。 “数据”对象是 S4 对象、环境和具有维度的对象。可能还有更多,这些是我目前发现的少数几个。 “值”对象既不是函数也不是“数据”对象。

编辑:经过进一步检查,RStudio 中的“值”似乎是小于 2 维的原子对象。我希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-27
    • 2018-03-06
    • 2014-05-23
    • 2015-06-01
    • 1970-01-01
    • 2014-07-22
    • 1970-01-01
    相关资源
    最近更新 更多