例如
data <- read.csv ("data.csv")
a <- mean(data)
b <- sd(data)
我保存工作区,然后退出。后来,我打开这个工作区,忘记了 a 和 b 是什么。我想让 R 告诉我 a 是数据的平均值,b 是数据的标准差。
我怎么做?
谢谢你。
例如
data <- read.csv ("data.csv")
a <- mean(data)
b <- sd(data)
我保存工作区,然后退出。后来,我打开这个工作区,忘记了 a 和 b 是什么。我想让 R 告诉我 a 是数据的平均值,b 是数据的标准差。
我怎么做?
谢谢你。
您始终可以将一些属性与您的数据一起存储,如下所示:
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"
一个建议是使用 R 环境的脚本功能,而不是直接在控制台中输入命令。
这个想法是,您可以在 a 中键入命令、注释甚至乱码文本(不符合 R 语法的内容),script window
并使用 Ctrl-R(或菜单中的Run
命令之一Edit
)发送当前行,或当前选择的文本的任何部分,到R Console window
(就像直接在那里输入一样)。
以这种方式,您可以:
除了隐式保存变量起源的记忆之外,脚本还有几个优点,特别是它们可以节省大量输入,并且它们还可以允许“从头开始”重新创建所有内容,逐字逐句或进行一些修改。
通常,您将无法从对象本身找出对象是如何创建的。某些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)
在这种情况下mean
和sd
它们不会返回原子向量。
你可以看看history
查看是否可以找到创建它们的命令(这并不理想,这取决于您的 IDE 以及一些环境变量的设置方式)。
Rstudio 有一个历史选项卡,显示项目中调用的先前命令的一些子集。
您也可以按向上键(至少在 Windows 上的 RGui 中有效),滚动浏览先前调用的命令。
这些基于历史记录的命令要求您使用相同的计算机和相同版本的R
.
可重复的研究或文学编程是克服这些问题的最佳方法。