小编Jor*_*eys的帖子

是否有R函数用于查找向量中元素的索引?

在R中,我有一个元素x和一个向量v.我想找到一个元素的第一个索引v,它等于x.我知道这样做的一种方法是:which(x == v)[[1]],但这似乎效率过低.有更直接的方法吗?

对于奖励积分,是否有一个功能,如果x是一个矢量?也就是说,它应该返回一个索引向量,指示xin 的每个元素的位置v.

indexing r vectorization match

290
推荐指数
4
解决办法
48万
查看次数

R中制作乳胶台的工具

根据一般要求,社区维基在R中生成乳胶表.在这篇文章中,我将概述最常用的包和博客,其中包含用于从不太直接的对象生成乳胶表的代码.请随意添加我错过的任何内容,和/或提供有关如何使用R生成格式良好的乳胶桌的提示,提示和小技巧.

套餐:

  • xtable:用于大多数简单对象的标准表.举例一个不错的画廊,可以发现在这里.
  • memisc:用于管理调查数据的工具,包含一些用于(基本)回归模型估计的乳胶表的工具.
  • Hmisc包含一个函数latex(),用于创建包含所选对象的tex文件.它非常灵活,也可以输出longtable乳胶表.帮助文件中有很多信息?latex
  • miscFuncs有一个简洁的函数'latextable',它将带有混合字母和数字条目的矩阵数据转换成LaTeX表并将它们打印到控制台,这样它们就可以被复制并粘贴到LaTeX文档中.
  • texreg包(JSS文件)将统计模型输出转换为LaTeX表.合并多个模型.可以处理大约50种不同的模型类型,包括网络模型和多级模型(lme和lme4).
  • reporttools包(JSS文件)是连续,分类和日期变量的描述性统计的另一种选择.
  • tables包可能是R中用于描述性统计的最常用的LaTeX表制作包
  • stargazer包制作了不错的比较统计模型汇总表

博客和代码片段

相关问题:

latex r

268
推荐指数
8
解决办法
12万
查看次数

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

这是一个FAQ问题,所以请尽可能完整.答案是社区答案,如果您认为缺少某些内容,请随时编辑.

这个问题在meta上进行了讨论和批准.

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

Error: could not find function "some.function"
Run Code Online (Sandbox Code Playgroud)

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

error-handling r function r-faq

167
推荐指数
6
解决办法
38万
查看次数

如何搜索"R"材料?

"谷歌"非常有用......除非你的语言被称为"R",在这种情况下它会吐出大量无关紧要的东西.

任何人都有"R"的搜索引擎技巧?有一些专门的网站,如下面的那些,但你怎么能告诉谷歌你的意思是"R"的语言?如果我正在寻找特定的东西,我将使用特定于R的术语,如"cbind".还有其他这样的伎俩吗?

search r r-faq

130
推荐指数
10
解决办法
1万
查看次数

R:什么是老虎机?

有谁知道R中的插槽是什么?

我没有找到其含义的解释.我得到一个递归定义:"Slot函数返回或设置有关对象的各个槽的信息"

感谢帮助,谢谢 - 胡同

oop r slot s4 r-faq

75
推荐指数
3
解决办法
3万
查看次数

如何将矩阵转换为R中的列向量列表?

假设您要将矩阵转换为列表,其中列表的每个元素都包含一列.list()或者as.list()显然不起作用,直到现在我使用hack使用以下行为tapply:

x <- matrix(1:10,ncol=2)

tapply(x,rep(1:ncol(x),each=nrow(x)),function(i)i)
Run Code Online (Sandbox Code Playgroud)

我对此并不完全满意.谁知道我忽略了一种更清洁的方法?

(为了使列表填充行,代码显然可以更改为:

tapply(x,rep(1:nrow(x),ncol(x)),function(i)i)
Run Code Online (Sandbox Code Playgroud)

)

r list matrix

71
推荐指数
8
解决办法
7万
查看次数

在启动时将par重置为默认值

通常当我创建自己的绘图函数时,我会构造一个构造:

op <- par("mypar"=myvalue)
on.exit(par(op))
Run Code Online (Sandbox Code Playgroud)

这是恢复par到以前值的标准方法.想象一下,你已经运行了一些确实改变了部分语句的函数,你需要在R启动时重置为默认值.这样做的方便方法是什么?

或者换句话说:如何达到默认值par()

default r par

70
推荐指数
3
解决办法
10万
查看次数

什么时候在R编程中使用S4方法是有回报的

我在专业环境中定期在R中编程,我也为客户或同事编写包.这里的一些程序员具有Java背景,并坚持使用S4方法以面向对象的方式做所有事情.另一方面,我的经验是,在尝试让代码按照您希望的方式执行操作时,S4实现通常会更糟,并且会导致更多的麻烦.

我绝对同意,在某些情况下,您必须能够以受控方式构造复杂对象或附加现有对象.但大多数时候,S4实现也可以使用经典列表轻松完成,没有像定义standardGeneric,方法,构造函数,初始化器等那样麻烦.

你什么时候考虑为R编写S4实现?

编辑:为了清楚起见,我非常感谢R.OOP中的答案和关于OO的讨论可以在R中以多种方式完成,但我的问题实际上是针对特定使用S4方法的附加值.

oop methods r s4

68
推荐指数
7
解决办法
4529
查看次数

R中S4对象,方法和编程的来源

由于我经常遇到需要S4编程来保持概述的情况,我收集了很多关于S4对象,方法和编程的资料.我在这里列出了它们作为参考.请添加您自己的来源.

在网上

图书

  • 用于数据分析的软件 - 使用R编程(J. Chambers):一个经典的,虽然没有在各处评论,但是包含S4的大部分内容
  • 生物信息学的R编程(R. Gentleman):专门针对与Bioconductor合作,完全基于S4.但它提供了广泛的概述,对许多其他人也很有用.

PS:如果有人找到社区复选框,您可以将其设为社区拥有的帖子.不知何故,我再也无法在编辑窗口中找到它......

r reference manual s4

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

R中的编码实践:不同风格的优缺点是什么?

最近关于使用require与::的问题引发了关于在R中编程时使用哪种编程风格的问题,以及它们的优点/缺点.浏览源代码或在网上浏览,您会看到许多不同的样式显示.

我的代码中的主要趋势:

  • 重度矢量化我使用索引(和嵌套索引)玩了很多,这有时会产生相当模糊的代码,但通常比其他解决方案快得多.例如:x[x < 5] <- 0而不是x <- ifelse(x < 5, x, 0)

  • 我倾向于嵌套函数以避免使用我需要清理的临时对象来重载内存.特别是对于操纵大型数据集的函数,这可能是一个真正的负担.例如:y <- cbind(x,as.numeric(factor(x)))而不是y <- as.numeric(factor(x)) ; z <- cbind(x,y)

  • 我编写了很多自定义函数,即使我只在例如一次使用代码.一个sapply.我相信它可以让它更容易阅读,而不会产生可以保持躺着的物体.

  • 不惜一切代价避免循环,因为我认为矢量化更清洁(更快)

然而,我注意到对此的看法不同,有些人倾向于背弃他们所谓的"Perl"编程方式(甚至是"Lisp",所有这些括号都在我的代码中飞来飞去.我不知道虽然走得那么远.

您认为R中的良好编码实践是什么?

您的编程风格是什么,您如何看待它的优缺点?

coding-style r vectorization

34
推荐指数
3
解决办法
4430
查看次数