我喜欢在窗口中弹出结果,以便更容易查看和查找(例如,当控制台继续滚动时,它们不会丢失).一种方法是使用sink()和file.show().例如:
y <- rnorm(100); x <- rnorm(100); mod <- lm(y~x)
sink("tempSink", type="output")
summary(mod)
sink()
file.show("tempSink", delete.file=T, title="Model summary")
Run Code Online (Sandbox Code Playgroud)
我经常这样做是为了检验模型拟合,如上述,也为各种各样的其他功能和对象,如:summary(data.frame),anova(model1, model2),table(factor1, factor2).这些很常见,但也可能出现其他情况.这里的要点是函数和对象的性质都可以变化.
每次输入以上所有内容有点乏味.我想写一个我可以调用的更简单的函数,类似下面的东西会很好:
sinkShow <- function(obj, fun, title="output") {
sink("tempSink", type="output")
apply(obj, ?, fun)
sink()
file.show("tempSink", delete.file=T, title=title)
}
Run Code Online (Sandbox Code Playgroud)
显然,这不起作用.有几个问题.首先,你将如何做到这一点,以便它不会与错误类型的对象或函数崩溃,而不必有一个条件执行列表(即,if(is.list(obj) { lapply...).其次,我不确定如何处理这个margin论点.最后,即使我尝试简单,人为的例子,我知道一切都设置得恰到好处,所以这似乎有些根本错误.
有谁知道如何简单轻松地处理这种情况?我不是R的新手,但我从来没有正式教过它; 我以特别的方式选择了技巧,即我不是一个非常复杂的R程序员.谢谢.
在RStudio中,当您在工作空间中创建变量时,它将在工作区选项卡中列出.在大多数情况下,信息是不言自明的.例如,如果你创建一个变量x <- rnorm(10),它会说x numeric[10],这意味着它是一个长度为10的数字向量.但是,如果你适合一个模型,例如,model <- lm(y~x)工作区会说model lm[12].显然,lm工作空间中有一个名为"模型" 的对象,但是它是什么12?而且,我注意到不同的模型(即使所有lm的模型)可以有不同的数字.
我有这个 R 代码
As = rnorm(5, mean = 0, sd = 5)
Bs = rnorm(5, mean = 0, sd = 5)
Cs = rnorm(5, mean = 0, sd = 5)
dat = data.frame(factor = c("A","A","A","A","A","B","B","B","B","B",
"C","C","C","C","C"),
response = c(As, Bs, Cs))
summary(aov(response ~ factor, data = dat))
Run Code Online (Sandbox Code Playgroud)
返回这个结果
> summary(aov(response ~ factor, data = dat))
Df Sum Sq Mean Sq F value Pr(>F)
factor 2 36.08 18.04 0.807 0.469
Residuals 12 268.22 22.
Run Code Online (Sandbox Code Playgroud)
我想获得的价值Pr(>F)是0.469。我怎样才能做到这一点?
我正在尝试制作大量情节并将其转储为PDF格式.有些情节自然会在一起,所以我希望它们与PDF格式相同.但是,尺寸会变形,或标题和x轴标签不会显示.有谁知道如何解决这一问题?
这是一个例子:
set.seed(1)
x <- runif(100)
pdf(file="My pdf.pdf", paper="letter")
par(mfrow=c(2,1)) # squished
hist(x, freq=FALSE)
lines(density(x))
qqnorm(x)
dev.off()
Run Code Online (Sandbox Code Playgroud)

pdf(file="My pdf.pdf", paper="letter")
par(mfrow=c(2,1), pin=c(3,3)) # no titles, etc.
hist(x, freq=FALSE)
lines(density(x))
qqnorm(x)
dev.off()
Run Code Online (Sandbox Code Playgroud)

pdf(file="My pdf.pdf", paper="letter")
par(mfrow=c(2,1), pin=c(3,3), mar=c(4,2,2,1)) # squished again
hist(x, freq=FALSE)
lines(density(x))
qqnorm(x)
dev.off()
pdf(file="My pdf.pdf", paper="letter")
par(mfrow=c(2,1), mar=c(4,2,2,1), pin=c(3,3)) # now titles but overlapping
hist(x, freq=FALSE)
lines(density(x))
qqnorm(x)
dev.off()
Run Code Online (Sandbox Code Playgroud)

我想要的不仅仅是执行此操作的代码,还要了解其工作原理.例如,为什么在最后两个版本中更改参数的顺序会产生很大的不同.请注意,我会在页面上有不同数量的图表(有时是2,4或8),尽管我只是在这里展示最简单的情况.如果存在的话,一些可以很好地自动缩放绘图的代码可能会很好.
能够查看您的数据很有帮助。当您有多个变量时,您可以形成散点图矩阵,例如,pairs()。散点图矩阵为您提供一组数据的 2D 边缘投影。
set.seed(8092)
X <- matrix(rnorm(80), ncol=4)
pairs(X)
Run Code Online (Sandbox Code Playgroud)

您还可以拥有不同组的数据并希望比较它们的分布。可以将两个这样的分布与 qq-plot 进行比较。
set.seed(4415)
group1 <- rnorm(20)
group2 <- rnorm(20)
qqplot(group1, group2)
abline(c(0,1))
Run Code Online (Sandbox Code Playgroud)

当您有多个组时,如果有一个显示 qq-plots 矩阵的对类型图会很方便。
colnames(X) <- c("group1", "group2", "group3", "group4")
qq.pairs(X)
Run Code Online (Sandbox Code Playgroud)
有这样的功能吗?有没有一种直接的方法可以从头开始编码?
我正在尝试使用该lm.ridge方法执行岭回归.我的问题是如何获得拟合模型的系数?我从调用中获得了不同的结果:
model$coefcoef(model)哪个是正确的?另外,为什么我会通过调用获得不同的结果:
coef(model) 并看第一系数,vs.coef(model)[1]?在 Ubuntu Linux 86-64 上尝试编译 freetype 2.6.1 时,我在配置步骤收到以下消息:
/usr/local/include/harfbuzz/hb-common.h:316:29: note: in expansion of macro ‘HB_TAG_MAX’
_HB_SCRIPT_MAX_VALUE = HB_TAG_MAX, /*< skip >*/
^
In file included from /home/sem/Downloads/freetype-2.6.1/freetype-2.6.1/src/autofit/afglobal.h:26:0,
from /home/sem/Downloads/freetype-2.6.1/freetype-2.6.1/src/autofit/afpic.c:23,
from /home/sem/Downloads/freetype-2.6.1/freetype-2.6.1/src/autofit/autofit.c:21:
/home/sem/Downloads/freetype-2.6.1/freetype-2.6.1/src/autofit/hbshim.h:31:19: fatal error: hb-ft.h: No such file or directory
#include <hb-ft.h>
^
compilation terminated.
Run Code Online (Sandbox Code Playgroud)
这里有什么问题?
我正在尝试将Turtle模块集成到我用TKInter创建的界面中,目前我有一个画布,我希望乌龟能够绘制到这个界面(参见示例1).然而,我迷失了如何得到它的吸引力.

我想使用R中的模式表达式来查找匹配的目录中的文件"ReportName*.HTML".这意味着我只想查找具有特定文件名和扩展名的文件,但之间存在动态字符.
这是一个例子:我想找到所有以"2016 Operations"开头但以扩展名".HTML"结尾的报告.目前我正在尝试:
files.control <- dir(path, pattern="^2016 Operations*.HTML$")
Run Code Online (Sandbox Code Playgroud)
为什么这不起作用?我喜欢一行代码; 它很简单.
如果我有MyDF108个变量的data.frame调用,我想申请factor(MyDF[, OnColumns 8 to 100].我该怎么做?
所以在伪代码中:
for(i=8, i < 101, i++)
{
# apply factor() to each column from 8 to 100
factor( MyDF[,i] )
}
Run Code Online (Sandbox Code Playgroud)
那有意义吗?