我最近从STATA过渡到R.我使用RSTudio作为我的IDE。我发现我的一些变量进入了RStudio的“数据”部分,有些进入了“值”。这些都在“环境”窗口中。我用Google搜索了一下,发现R中有一些我遗漏的主要概念。 “数据”和“价值”之间有什么区别?如果有人可以在变量将转到数据部分并且何时转到值部分时发布示例,那将会很棒。
我很感激任何想法。
答案 0 :(得分:13)
你不会错过“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"
答案 1 :(得分:1)
这纯粹是RStudio中的一个区别。 “数据”对象是S4对象,环境和具有尺寸的对象。可能还有更多,这些是我到目前为止发现的少数几个。 “值”对象是既不是函数也不是“数据”对象的对象。
Edit:经过进一步检查,似乎RStudio中的“值”是小于2维的原子对象。我希望这会有所帮助。