问题标签 [r-faq]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
22458 浏览

r - 使用行、列索引从矩阵中索引值

我有一个mat500 行 × 335 列的二维矩阵和一个 120425行的datdata.frame。data.framedat有两列IJ,它们是用于索引行、列的整数mat。我想将值添加matdat.

这是我的概念失败:

(我在 Win32 上使用 R 2.13.1)。再深入一点,我发现我在滥用矩阵索引,因为我似乎只得到 的子矩阵mat,而不是我预期的一维值数组,即:

我期待类似的东西int [1:100] 20 1 1 1 20 1 1 1 1 1 ...。使用行、列索引来索引二维矩阵以获取值的正确方法是什么?

0 投票
6 回答
31334 浏览

r - 为什么我不能得到小于 2.2e-16 的 p 值?

我在 R 中发现了 t-tests 和 chi-squared 这个问题,但我认为这个问题通常适用于其他测试。如果我做:

我得到:t = -64.6472, df = 18.998, p-value < 2.2e-16。我从评论中知道-2.2e-16的值是.Machine$double.eps- 的最小浮点数1 + x != 1,但当然 R 可以表示比这小得多的数字。我还从 R FAQ 知道 R 必须将浮点数舍入到 53 位二进制精度:R FAQ

几个问题:(1)我将其读取为 53 位精度的二进制数字是否正确,或者 R 中的值< .Machine$double.eps是否计算不准确?(2) 为什么在进行此类计算时,R 没有提供一种方法来显示 p 值的较小值,即使精度有所损失?(3) 有没有办法显示更小的 p 值,即使我失去了一些精度?对于单次测试,2 个十进制有效数字就可以了,对于我要 Bonferroni 正确的值,我需要更多。当我说“失去一些精度”时,我认为 < 53 个二进制数字,但是 (4) 我完全弄错了,任何 p 值< .Machine$double.eps都非常不准确吗?(5) R 只是诚实而其他统计数据包不是吗?

在我的领域,非常小的 p 值是常态,一些例子: http : //www.ncbi.nlm.nih.gov/pubmed/20154341,http: //www.plosgenetics.org/article/info%3Adoi%2F10 .1371%2Fjournal.pgen.1002215这就是为什么我要表示如此小的 p 值。

感谢您的帮助,对于如此曲折的问题感到抱歉。

0 投票
4 回答
12245 浏览

r - R因子的算术运算

我有一个 R 数据框,我试图从另一列中减去一列。我使用运算符提取列,$但列的类是“因子”,R 不会对因子执行算术运算。是否有特殊功能可以做到这一点?

0 投票
11 回答
457748 浏览

r - 如何在不重新启动 R 的情况下卸载包

我想卸载一个包而不必重新启动 R(主要是因为在我尝试不同的、冲突的包时重新启动 R 会令人沮丧,但可以想象这可以在程序中使用一个函数然后使用另一个函数——尽管命名空间对于这种用途,引用可能是一个更好的主意)。

?library没有显示任何可以卸载包的选项。

有一个建议可以detach卸载包,但是以下都失败了:

错误detach(vegan):无效name参数

错误detach("vegan"):无效name参数

那么如何卸载包呢?

0 投票
10 回答
506736 浏览

r - 错误:在 R 中找不到函数...

这是一个常见问题解答问题,因此请尽可能完整。答案是社区答案,因此如果您认为缺少某些内容,请随时进行编辑。

这个问题在 meta 上得到了讨论和批准。

我正在使用 R 并尝试过some.function,但收到以下错误消息:

这个问题经常出现。当你在 R 中遇到这种类型的错误时,你如何解决它?

0 投票
2 回答
124963 浏览

r - 如何过滤数据框

我有一个数据框,并试图只选择我感兴趣的观察结果:

不幸的是,这个命令破坏了data.frame结构并返回一个 long vector

我想要得到的是data.frame不符合我的标准的观察结果的缩短。

0 投票
2 回答
17365 浏览

r - 迁移 R 库

我想在 Linux 上将几个 R 库 (*) 从一个驱动器移动到另一个驱动器,并且想知道一个简单的移动是否可行且安全,或者我是否应该卸载并重新安装这些包。我意识到库的位置是.libPaths()通过“R 安装和管理”手册来确定的,并查看了有关迁移库的信息,但没有看到推荐的过程。

我认为三个选项:

  1. 运行remove.packages()所有非基础包,并通过install.packages(lib = "/path/to/new/location").
  2. 使用符号链接移动库(目录)mv并使用符号链接指向新位置(并最终删除符号链接)
  3. 按照R 安装和管理手册中的建议,使用mvLinux 中的命令将目录批量移动和更新.Library.siteR_HOME/etc/Rprofile.site

选项#1 是直截了当的。选项 #2 应该可以工作,但似乎有点不合理。

#3 安全还是存在严重问题?我发现的问题是:目录权限以及任何包的设置存储绝对路径而不是相对路径的可能性(这似乎不合理且不必要)。

关于绝对路径的存储,我发现rJava将 的位置存储R_HOME在一个名为run. 这本身不是库问题,但它表明一个包(以及一个好的包)保留了绝对路径的私有副本。

(*) 有几个库和许多包。自然,只有库(目录)被移动,但包可能会受到影响。


更新 1 / 澄清:只是为了澄清:我只是迁移库,而不是更改 R 的版本或包的版本。更新 R 或软件包可以单独完成,但问题只是移动库是否可行。似乎如果有必要更新或重新安装所有软件包以确保正确安装,那么这是一个更类似于选项 #1 而不是选项 #3 的路径。

更新2:另一个SO帖子的答案对如何在升级时避免这个问题有一些好主意。我没有升级 R,但 Dirk Eddelbuettel 建议不在 R 的文件树中安装软件包是明智的。

0 投票
11 回答
394597 浏览

r - 如何将绘图保存为磁盘上的图像?

我使用 R 绘制了一个简单的线性回归。我想将该图像保存为 PNG 或 JPEG,是否可以自动执行?(通过代码)

有两个不同的问题:首先,我已经在我的显示器上查看情节,我想按原样保存它。其次,我还没有生成绘图,但我想在执行绘图代码时直接将其保存到磁盘。

0 投票
9 回答
99528 浏览

r - 使用 ggplot2,我可以在轴上插入一个中断吗?

我想制作一个条形图,其中一个值比所有其他值大得多。有没有办法让y轴不连续?我的数据如下:

在此处输入图像描述

有没有办法让我的轴从 1-10 运行,然后从 490-500 运行?我想不出任何其他方式来绘制数据(除了转换它,我不想这样做)

[编辑 2019-05-06]:

8 年后,需要修改上述代码以使用 3.1.1 版本ggplot2才能创建相同的图表:

0 投票
12 回答
817003 浏览

r - 如何连接两个字符串?

如何连接(合并、组合)两个值?例如我有:

我的目标是将“tmp”中的两个值连接到一个字符串:

哪个功能可以为我做到这一点?