小编gun*_*ica的帖子

如何使用函数和*apply查看文件中的结果?

我喜欢在窗口中弹出结果,以便更容易查看和查找(例如,当控制台继续滚动时,它们不会丢失).一种方法是使用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程序员.谢谢.

r apply

2
推荐指数
1
解决办法
708
查看次数

了解RStudio的工作区选项卡lm表示法

在RStudio中,当您在工作空间中创建变量时,它将在工作区选项卡中列出.在大多数情况下,信息是不言自明的.例如,如果你创建一个变量x <- rnorm(10),它会说x numeric[10],这意味着它是一个长度为10的数字向量.但是,如果你适合一个模型,例如,model <- lm(y~x)工作区会说model lm[12].显然,lm工作空间中有一个名为"模型" 的对象,但是它是什么12?而且,我注意到不同的模型(即使所有lm的模型)可以有不同的数字.

r rstudio

2
推荐指数
1
解决办法
161
查看次数

如何从 R 中的汇总方差分析测试中获取 p 值?

我有这个 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。我怎样才能做到这一点?

r

2
推荐指数
1
解决办法
3483
查看次数

在PDF格式的多图中绘制边距和绘图大小的麻烦

我正在尝试制作大量情节并将其转储为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),尽管我只是在这里展示最简单的情况.如果存在的话,一些可以很好地自动缩放绘图的代码可能会很好.

r

2
推荐指数
1
解决办法
3225
查看次数

将矩阵与 qq-plots 配对

能够查看您的数据很有帮助。当您有多个变量时,您可以形成散点图矩阵,例如,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)

有这样的功能吗?有没有一种直接的方法可以从头开始编码?

r

2
推荐指数
1
解决办法
1874
查看次数

MASS :: lm.ridge系数

我正在尝试使用该lm.ridge方法执行岭回归.我的问题是如何获得拟合模型的系数?我从调用中获得了不同的结果:

  • model$coef
  • coef(model)

哪个是正确的?另外,为什么我会通过调用获得不同的结果:

  • coef(model) 并看第一系数,vs.
  • coef(model)[1]

r

2
推荐指数
1
解决办法
1307
查看次数

编译freetype

在 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)

这里有什么问题?

freetype

2
推荐指数
1
解决办法
3864
查看次数

将turtle模块与tkinter canvas集成在一起

我正在尝试将Turtle模块集成到我用TKInter创建的界面中,目前我有一个画布,我希望乌龟能够绘制到这个界面(参见示例1).然而,我迷失了如何得到它的吸引力.

例

python tkinter turtle-graphics python-3.x

2
推荐指数
1
解决办法
7025
查看次数

R Wildcard在表达式中间

我想使用R中的模式表达式来查找匹配的目录中的文件"ReportName*.HTML".这意味着我只想查找具有特定文件名和扩展名的文件,但之间存在动态字符.

这是一个例子:我想找到所有以"2016 Operations"开头但以扩展名".HTML"结尾的报告.目前我正在尝试:

files.control <- dir(path, pattern="^2016 Operations*.HTML$")
Run Code Online (Sandbox Code Playgroud)

为什么这不起作用?我喜欢一行代码; 它很简单.

regex r

1
推荐指数
1
解决办法
1130
查看次数

将函数应用于R中某些列的所有行

如果我有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)

那有意义吗?

iteration r apply

1
推荐指数
1
解决办法
99
查看次数