Questions tagged «r»

R是一种免费的开源编程语言和软件环境,用于统计计算,生物信息学,可视化和通用计算。请提供最少且可复制的示例以及所需的输出。使用`dput()`作为数据,并通过`library()`调用指定所有非基本包。不要为数据或代码嵌入图片,而应使用缩进的代码块。对于统计相关的问题,请使用https://stats.stackexchange.com。

3
ggplot2-在情节之外进行注释
我想将样本大小值与绘图上的点相关联。我可以geom_text用来将数字定位在点附近,但这很混乱。将它们沿着地块的外部边缘对齐会更清洁。 例如,我有: df=data.frame(y=c("cat1","cat2","cat3"),x=c(12,10,14),n=c(5,15,20)) ggplot(df,aes(x=x,y=y,label=n))+geom_point()+geom_text(size=8,hjust=-0.5) 产生此图: 我更喜欢这样的东西: 我知道我可以创建第二个图并使用grid.arrange(la la post),但是确定textGrobs的间距与y轴对齐将很繁琐。有没有更简单的方法可以做到这一点?谢谢!
73 r  annotations  ggplot2 

6
按组提取与变量最小值对应的行
我希望(1)将数据按一个变量()分组State,(2)在每个组中找到另一个变量(Employees)的最小值行,以及(3)提取整行。 (1)和(2)是简单的一线客,我觉得(3)也是,但我无法理解。 这是一个示例数据集: > data State Company Employees 1 AK A 82 2 AK B 104 3 AK C 37 4 AK D 24 5 RI E 19 6 RI F 118 7 RI G 88 8 RI H 42 data <- structure(list(State = structure(c(1L, 1L, 1L, 1L, 2L, 2L, …

2
功能串联路径?
是否存在连接路径的现有功能? 我知道实现起来并不难,但是...除了要注意尾部/(或\),我还需要注意适当的OS路径格式检测(即,我们写C:\dir\file还是/dir/file)。 正如我所说,我相信我知道如何执行它;问题是:我应该这样做吗?该功能已存在于现有R包中吗?
73 r  path  concatenation 


4
R install.packages返回“无法创建锁定目录”
下载Rcpp软件包时出现此错误: > install.packages("Rcpp", dependencies=TRUE) Installing package(s) into ‘/home/me/src/Rlibs’ (as ‘lib’ is unspecified) trying URL 'http://cran.us.r-project.org/src/contrib/Rcpp_0.10.2.tar.gz' Content type 'application/x-gzip' length 2380089 bytes (2.3 Mb) ... Warning in dir.create(lockdir, recursive = TRUE) : cannot create dir '/home', reason 'Permission denied' ERROR: failed to create lock directory ‘/home/me/src/Rlibs/00LOCK-Rcpp’ ... 由于我的计算机位于计算机群集上,因此我已经在不同的节点上进行了尝试,并且小心删除了在/ tmp中下载的临时文件。奇怪的是我有权在/ home / …
73 r  package  rcpp 

6
在R虚拟环境?
我发现了一些有关R中最佳实践,可重复性和工作流程的帖子,例如: 如何提高研究的长期可重复性(尤其是使用R和Sweave) 使用R的可重复研究的完整实质性示例 从代码移动到新机器(可能运行不同的OS)相对简单并且给出相同结果的意义上来说,主要的工作之一就是确保代码的可移植性。 来自Python背景,我习惯了虚拟环境的概念。与所需软件包的简单列表一起使用时,这可以确保安装的软件包和库在任何计算机上都可用,而不会引起太多麻烦。当然,这不能保证-不同的操作系统都有自己的缺点和特点-但这可以为您提供95%的解决方案。 R中是否存在这样的东西?即使它不那么复杂。例如,仅维护必需软件包的纯文本列表以及将安装所有缺失软件包的脚本? 我即将开始认真使用R,可能与Sweave结合使用,并且理想情况下,我希望以最佳方式开始!感谢您的想法。
73 r  python 

3
将%>%与colnames()<-
我如何使用管道运算符将管道替换为类似的函数colnames()&lt;-? 这是我想做的事情: library(dplyr) averages_df &lt;- group_by(mtcars, cyl) %&gt;% summarise(mean(disp), mean(hp)) colnames(averages_df) &lt;- c("cyl", "disp_mean", "hp_mean") averages_df # Source: local data frame [3 x 3] # # cyl disp_mean hp_mean # 1 4 105.1364 82.63636 # 2 6 183.3143 122.28571 # 3 8 353.1000 209.21429 但理想情况下,它将是这样的: averages_df &lt;- group_by(mtcars, cyl) %&gt;% …
73 r  dplyr  magrittr 

3
将数据帧转换为向量(按行)
我有一个带有这样的数字条目的数据框 test &lt;- data.frame(x = c(26, 21, 20), y = c(34, 29, 28)) 如何获得以下向量? &gt; 26, 34, 21, 29, 20, 28 我可以使用以下方法获得它,但我想应该有一种更优雅的方法 X &lt;- test[1, ] for (i in 2:dim(test)[ 1 ]){ X &lt;- cbind(X, test[i, ]) }
72 r  dataframe  vector  r-faq 


6
将矩阵的行乘以矢量?
我有一个matrix包含25列和23行的数字,以及一个长度为25的向量。如何在不使用a的情况下将矩阵的每一行乘以向量for循环的? 结果应该是25x23的矩阵(与输入大小相同),但是每一行都已乘以向量。 从@hatmatrix的答案中添加了可复制的示例: matrix &lt;- matrix(rep(1:3,each=5),nrow=3,ncol=5,byrow=TRUE) [,1] [,2] [,3] [,4] [,5] [1,] 1 1 1 1 1 [2,] 2 2 2 2 2 [3,] 3 3 3 3 3 vector &lt;- 1:5 所需的输出: [,1] [,2] [,3] [,4] [,5] [1,] 1 2 3 4 5 [2,] 2 4 6 8 10 …

4
在R图形窗口中组合基础图形和ggplot图形
我想生成一个具有基本图形和ggplot图形组合的图形。以下代码使用R的基本绘图功能显示了我的身影: t &lt;- c(1:(24*14)) P &lt;- 24 A &lt;- 10 y &lt;- A*sin(2*pi*t/P)+20 par(mfrow=c(2,2)) plot(y,type = "l",xlab = "Time (hours)",ylab = "Amplitude",main = "Time series") acf(y,main = "Autocorrelation",xlab = "Lag (hours)", ylab = "ACF") spectrum(y,method = "ar",main = "Spectral density function", xlab = "Frequency (cycles per hour)",ylab = "Spectrum") require(biwavelet) …
72 r  plot  ggplot2  base  biwavelet 

7
什么时候在R编程中使用S4方法值得
我经常在专业环境下用R编程,也为客户或同事编写程序包。这里的一些程序员具有Java背景,并坚持使用S4方法以面向对象的方式进行所有操作。另一方面,我的经验是,在尝试使代码执行您想要执行的操作时,S4实现通常会执行得更糟,并且导致更多的麻烦。 我绝对同意,在某些情况下,您必须能够以受控的方式构造复杂的对象或追加现有对象。但是在大多数情况下,也可以使用经典列表轻松完成S4实现,而无需像定义standardGeneric,方法,构造函数,初始化程序之类的麻烦。 您何时考虑为R编写S4实现? 编辑:为清楚起见,我确实很欣赏R中有关OO的答案和讨论。OOP可以在R中以多种方式完成,但我的问题确实是针对使用S4方法的附加价值。
72 oop  r  methods  s4 

3
R中的缓存/备注/哈希选项
我试图找到一种简单的方法来在R中使用Perl的哈希函数(本质上是缓存),因为我打算同时进行Perl样式的哈希并编写自己的计算备忘录。但是,其他人却打败了我,并准备了备忘录。挖掘的越多,我发现的就越多,例如memoise和R.cache,但差异尚不明确。此外,除了使用该hash包之外,还不清楚如何获得Perl风格的哈希(或Python风格的字典)并编写自己的备忘录,这似乎并不能支撑这两个备忘录包。 由于我找不到有关CRAN或其他地方的信息来区分这些选项,因此这也许应该是关于SO的社区Wiki问题:R中用于记忆和缓存的选项是什么,它们之间有什么区别? 作为比较的基础,这是我找到的选项的列表。另外,在我看来,所有这些都依赖于哈希,因此我还要注意哈希选项。密钥/值存储在某种程度上是相关的,但是它打开了大量有关DB系统的蠕虫(例如BerkeleyDB,Redis,MemcacheDB以及许多其他蠕虫)。 看起来这些选项是: 散列 摘要-为任意R对象提供哈希。 记忆化 memoise-一个非常简单的功能记忆工具。 R.cache-提供更多用于记忆的功能,尽管似乎其中一些功能缺少示例。 快取 hash-提供类似于Perl的hash和Python字典的缓存功能。 键/值存储 这些是R对象的外部存储的基本选项。 藏匿者 文件哈希 检查点 缓存器-这似乎更类似于检查点。 CodeDepends-一个OmegaHat项目,可作为基础cacher并提供一些有用的功能。 DMTCP(不是R包)-似乎支持多种语言的检查点,并且开发人员最近寻求协助来测试R中的DMTCP检查点。 其他 Base R支持:命名向量和列表,数据框的行和列名称以及环境中的项目名称。在我看来,使用列表有点麻烦。(也有pairlist,但已弃用。) 所述data.table包支持在一个数据表元素的快速查找。 用例 尽管我对了解这些选项最感兴趣,但是我有两个基本用例: 缓存:简单的字符串计数。[注意:这不是用于NLP,而是用于一般用途,因此NLP库是过大的;表是不够的,因为我不想等到整个字符串集都加载到内存中后再进行操作。Perl样式的哈希值在实用程序中是正确的。] 记忆巨大的计算。 之所以会出现这些问题,是因为我正在研究一些简单的代码概要分析,并且我真的很想只计算简单的字符串,看看是否可以通过记忆来加快一些计算。即使我不做备忘录,也能够对输入值进行哈希处理,这会让我看看备忘录是否有帮助。 注意1:“可再生性研究的CRAN任务视图”列出了几个软件包(cacher和R.cache),但未详细说明用法选项。 注意2:为了帮助其他人查找相关代码,这里有一些作者或软件包的注意事项。有些作者使用SO。:) Dirk Eddelbuettel:digest-许多其他软件包都依赖于此。 罗杰·彭:cacher,filehash,stashR-以不同的方式,这些地址不同的问题; 有关更多软件包,请参见Roger的网站。 Christopher Brown:hash-似乎是一个有用的软件包,但不幸的是,与ODG的链接断开了。 亨里克·本格森(Henrik Bengtsson):R.cache&哈德利·威克姆(Hadley Wickham):memoise-目前尚不清楚何时偏爱另一种包装。 注意3:有些人使用备忘录/记忆,其他人使用备忘录/记忆。如果您在四处搜寻,请注意。Henrik使用“ z”,Hadley使用“ s”。

3
将自定义图像添加到geom_polygon中,填写ggplot
一位学生问我是否可以使用R重新创建类似于下面的图: 这是从 本文开始的。 这种东西不是我的专长,但是使用以下代码,我可以创建95%CI椭圆并使用绘制它们geom_polygon()。我使用该rphylopic软件包将我从系谱库中抓取的图像填充到图像中。 #example data/ellipses set.seed(101) n &lt;- 1000 x1 &lt;- rnorm(n, mean=2) y1 &lt;- 1.75 + 0.4*x1 + rnorm(n) df &lt;- data.frame(x=x1, y=y1, group="A") x2 &lt;- rnorm(n, mean=8) y2 &lt;- 0.7*x2 + 2 + rnorm(n) df &lt;- rbind(df, data.frame(x=x2, y=y2, group="B")) x3 &lt;- rnorm(n, mean=6) y3 &lt;- x3 …
72 r  ggplot2 


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.