例如
data <- read.csv ("data.csv")
a <- mean(data)
b <- sd(data)
然后保存工作区,然后退出。 后来,我打开这个工作区,忘了a和b是什么。 我希望R告诉我a是数据的平均值,b是数据的标准偏差。
我该怎么做?
谢谢。
答案 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)
在这种情况下mean
和sd
不会,因为它们会返回原子矢量。
您可以查看history
以查看是否可以找到创建它们的命令(这不是理想的,它取决于您的IDE以及如何设置一些环境变量)。
Rstudio有一个历史记录选项卡,显示项目中调用的先前命令的某些子集。
您也可以按向上键(这至少在Windows上的RGui中工作),滚动以前调用的命令。
这些基于历史记录的命令要求您使用相同的计算机和R
版本。
可重复的研究或文学编程是克服这些问题的最佳方法。