我如何知道特定R对象的细节?

时间:2013-03-14 03:14:21

标签: r

例如

data <- read.csv ("data.csv")
a <- mean(data)
b <- sd(data)

然后保存工作区,然后退出。 后来,我打开这个工作区,忘了a和b是什么。 我希望R告诉我a是数据的平均值,b是数据的标准偏差。

我该怎么做?

谢谢。

3 个答案:

答案 0 :(得分:4)

建议使用R环境的脚本功能,而不是直接在控制台中键入命令。

我们的想法是,您可以在script window中使用Ctrl-R(或{{1}之一)键入命令,注释甚至乱码文本(不符合R语法的内容)来自Run菜单的}命令,您将当前行或当前所选文本的任何部分发送到Edit(就像直接在那里键入它一样)。

以这种方式,您可以:

  • 添加关于您创建的变量的性质的大量注释
  • 将脚本与环境一起保存或单独保存。

除了隐式保存变量起源的内存之外,脚本还有几个优点,特别是它们可以节省大量的输入,并且它们还可以“从头开始”,逐字或少量地重新创建所有内容。修改

答案 1 :(得分:4)

您可以随时在数据中存储一些属性,如下所示:

x <- 1:10
a <- mean(x)
attr(a,"info") <- "mean of x"

> a
[1] 5.5
attr(,"info")
[1] "mean of x"

> attributes(a)
$info
[1] "mean of x"

以下@mnel注意到的替代方法是使用comment。这些不会默认打印,但可以稍后以类似的方式访问:

comment(a) <- "mean of x"

> comment(a)
[1] "mean of x"

答案 2 :(得分:3)

通常,您将无法了解如何从对象本身创建对象。某些object类型将具有call元素,可以保存用于创建它们的call

lm个对象具有此属性。

例如

dd <- data.frame(y=runif(10), x= rnorm(10))
model <- lm(y~x,dd)
model$call
lm(formula = y ~ x, data = dd)

在这种情况下meansd不会,因为它们会返回原子矢量。

您可以查看history以查看是否可以找到创建它们的命令(这不是理想的,它取决于您的IDE以及如何设置一些环境变量)。

Rstudio有一个历史记录选项卡,显示项目中调用的先前命令的某些子集。

您也可以按向上键(这至少在Windows上的RGui中工作),滚动以前调用的命令。

这些基于历史记录的命令要求您使用相同的计算机和R版本。

可重复的研究或文学编程是克服这些问题的最佳方法。