1

例如

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

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

我怎么做?

谢谢你。

4

3 回答 3

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"
于 2013-03-14T03:19:32.940 回答
4

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

这个想法是,您可以在 a 中键入命令、注释甚至乱码文本(不符合 R 语法的内容),script window并使用 Ctrl-R(或菜单中的Run命令之一Edit)发送当前行,或当前选择的文本的任何部分,到R Console window (就像直接在那里输入一样)。

以这种方式,您可以:

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

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

于 2013-03-14T03:18:22.837 回答
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.

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

于 2013-03-14T03:21:32.243 回答