“ Writing R Extensions ”手册就何时使用Imports或Depends提供了以下指导: 一般规则是 仅使用名称空间来加载使用库(pkgname)的软件包的软件包必须列在“导入”字段中,而不是“取决于”字段中。 需要附加的软件包才能成功地使用库(pkgname)加载软件包,只能列在“取决于”字段中。 有人可以提供更多的唠叨吗? 我怎么知道我的软件包什么时候只需要加载名称空间,什么时候需要连接一个包? 两者的例子是什么? 我认为典型的软件包只是一些函数的集合,有时候在其他软件包中调用函数(其中一些工作已经被编码)。 这是上面的情况1或2吗? 编辑 我写了一篇关于这个特定主题的博文 (search“Imports v Depends”)。 视觉效果使它更容易理解。
我有一个工作区有很多的对象,我想删除所有,但一个。 理想情况下,我想避免inputrm(obj.1, obj.2… obj.n) 。 是否可以指示remove all objects but these ones呢?
我有一个数据框,并为该数据框中的每一行,我不得不做一些复杂的查找,并追加到一个文件的一些数据。 dataFrame包含了来自生物学研究中使用的96孔板的选定孔的科学结果,所以我想要做这样的事情: for (well in dataFrame) { wellName <- well$name # string like "H1" plateName <- well$plate # string like "plate67" wellID <- getWellID(wellName, plateName) cat(paste(wellID, well$value1, well$value2, sep=","), file=outputFile) } 在我的程序世界里,我会做一些事情: for (row in dataFrame) { #look up stuff using data from the row #write stuff to the file } 什么是“R方式”做到这一点?
什么时候应该使用data.frame ,什么时候使用matrix更好? 两者都保持矩形格式的数据,所以有时不清楚。 什么时候使用哪种数据types有什么一般的经验法则?
编辑:哈德利·韦翰指出,我错过了。 R CMD检查是抛出NOTES,而不是警告。 我非常抱歉的混淆。 这是我的疏忽。 简短的版本 R CMD check每次在ggplot2中使用合理的绘图创build语法时都会抛出此注释: no visible binding for global variable [variable name] 我明白为什么R CMD检查是这样做的,但是它似乎正在将整个语言的句法进行定罪。 我不确定要采取什么措施让我的包裹通过R CMD check并获得CRAN的录取。 的背景 Sascha Epskamp以前发布了基本上相同的问题 。 我认为,区别在于subset()的manpage 表示它是为交互使用而devise的 。 在我的情况下,这个问题不在subset()而是在ggplot2一个核心特性上: data =参数。 我写的代码生成这些笔记的一个例子 以下是我的包中的一个子函数 ,它为曲线添加了点: JitteredResponsesByContrast <- function (data) { return( geom_point( aes( x = x.values, y = y.values ), data = data, position = […]
为了摆脱data.frame名为“foo”的data.frame ,我可以这样做: df <- df[-grep('foo', colnames(df))] 但是,一旦df被转换为data.table对象,就没有办法只删除一列。 例: df <- data.frame(id = 1:100, foo = rnorm(100)) df2 <- df[-grep('foo', colnames(df))] # works df3 <- data.table(df) df3[-grep('foo', colnames(df3))] 但是,一旦它被转换成data.table对象,这不再起作用。
如何在R中导入纯文本文件作为单个string? 我认为这可能会有一个非常简单的答案,但是当我今天尝试这个时,我发现我找不到一个function来做到这一点。 例如,假设我有一个文件foo.txt与我想textmine的东西。 我尝试过: scan("foo.txt", what="character", sep=NULL) 但是这仍然是一个向量。 我得到它的工作有点: paste(scan("foo.txt", what="character", sep=" "),collapse=" ") 但这是一个相当不好的解决办法,可能也不稳定。
我有一个名为“mydata”的数据框,如下所示: ABCD 1. 5 4 4 4 2. 5 4 4 4 3. 5 4 4 4 4. 5 4 4 4 5. 5 4 4 4 6. 5 4 4 4 7. 5 4 4 4 我想删除第2,4,6行。 例如,像这样: ABCD 1. 5 4 4 4 3. 5 4 4 4 5. 5 4 4 4 […]
我尊重的许多数据分析师使用版本控制。 例如: http://github.com/hadley/ 在http://permut.wordpress.com/2010/04/21/revision-control-statistics-bleg/上查看评论 不过,我正在评估采用git等版本控制系统是否值得。 简要概述:我是一位使用R来分析研究出版物数据的社会科学家。 我目前不生产R软件包。 我的一个项目的R代码通常包含几千行代码,用于数据input,清理,操作,分析和输出生成。 出版物通常使用LaTeX编写。 关于版本控制,我已经阅读了很多好处,但是他们似乎与独奏数据分析师不太相关。 备份:我已经有一个备份系统。 分叉和倒带:我从来没有觉得有必要这样做,但我可以看到它是如何有用的(例如,你正在准备多个基于相同数据集的期刊文章,你正在准备一个每月更新的报告等) 合作:大部分时间我都是自己分析数据,因此,我不会得到版本控制的协作好处。 采用版本控制还有几个潜在的成本: 有时间去评估和学习一个版本控制系统 可能会增加我当前文件pipe理系统的复杂性 不过,我仍然有这样的感觉,我错过了一些东西。 有关版本控制的一般指南似乎比数据分析师更多地针对计算机科学家。 因此,特别是在类似于上述情况的数据分析人员方面: 版本控制是值得的吗? 采用版本控制的主要优点和缺点是什么? 开始使用R进行数据分析的版本控制(例如,示例,工作stream程概念,软件,指南链接)是一个很好的策略?
我最近遇到了python的pandas库,根据这个基准testingperformance出非常快的内存合并。 它甚至比R中的data.table包(我select分析的语言)更快。 为什么pandas比data.table ? 是因为python比R有一个固有的速度优势,还是有一些折衷,我不知道? 有没有办法在data.table执行内部和外部连接,而不是通过merge(X, Y, all=FALSE)和merge(X, Y, all=TRUE) ? 以下是用于对各种软件包进行基准testing的R代码和Python代码 。