相关疑难解决方法(0)

R是否适用于家庭而不是语法糖?

......关于执行时间和/或记忆.

如果不是这样,请使用代码段进行证明.请注意,矢量化的加速不计算在内.增速必须来自apply(tapply,sapply,...)本身.

r apply

146
推荐指数
5
解决办法
2万
查看次数

任何R风格指南/检查?

在Python中我习惯于在第8个Python增强提议之后通过一个名为pep8的自动但可配置的工具对我的代码进行"样式检查" .

在RI不知道.谷歌有一个风格指南,但是:

  • 大多数R程序员实际使用了什么?
  • 我仍然没有找到任何执行这些检查的程序.

Dirk,Alex,在你的答案中,你指着我的漂亮的打印机,但在我看来,这将过度一件事而不是另一件事:代码将自动编辑以遵循风格,而没有针对选择不当的标识符发出警告.

r

26
推荐指数
4
解决办法
4915
查看次数

让Emacs ESS遵循R风格指南

我已经使用Emacs/ESS很长一段时间了,我熟悉Hadley的R风格推荐.我想在ESS中遵循这些约定,比如运算符周围的空格,逗号后面的空格和后面的if语句,花括号之前等等.

是否有人甚至不愿意遵循这种风格指南?恕我直言,官方风格的建议相当谦虚,他们对风格一无所知.Google R风格指南与我在JavaScript中编码时使用的类似,所以这是禁忌.

长话短说:有没有(e)LISP技能愿意为ESS实施(哈德利)风格指南的人?

emacs coding-style elisp r ess

15
推荐指数
3
解决办法
3515
查看次数

代码构建过程和嵌入式功能

首先,这个问题不是试图解决具体问题.作为R的新手,我也在努力创建更高效​​的代码和代码构建过程.获得关于不同编程方法甚至样式的观点是这个问题背后的原因.

以下是三种编码方式:

首先是示例数据:

stackexample <- c(52,50,45,49.5,50.5,12,10,14,11.5,12,110,108,106,101,104)
dim(stackexample)<- c(5,3)
Run Code Online (Sandbox Code Playgroud)

方法一:在函数中进行数学运算而不定义任何对象

 ertimesIVCV1 <- function (x) 
{ (solve(var(log((x[-nrow(x),])/(x[-1,])))))%*%
  ((1+(log(x[1,]/(x)[nrow(x),])))^(1/nrow(x))-1)}

ertimesIVCV1(stackexample)
Run Code Online (Sandbox Code Playgroud)

方法二:在函数中定义对象,然后操纵这些对象

    ertimesIVCV2 <- function (x) 
{ IVCV <- solve(var(log((x[-nrow(x),])/(x[-1,]))));
  retsexcess <- (1+(log(x[1,]/(x)[nrow(x),])))^(1/nrow(x))-1;
  IVCV%*%retsexcess}

ertimesIVCV2(stackexample)
Run Code Online (Sandbox Code Playgroud)

方法三:定义几个函数并在"类似摘要"函数中调用这些函数

IVCV <- function (x) {solve(var(log((x[-nrow(x),])/(x[-1,]))))}
retsexcess <- function(x) (1+(log(x[1,]/(x)[nrow(x),])))^(1/nrow(x))-1
ertimesIVCV3 <- function (x) {IVCV(x)%*%retsexcess(x)}

ertimesIVCV3(stackexample)
Run Code Online (Sandbox Code Playgroud)

所以都产生了相同的答案:

           [,1]
[1,]  1.4430104
[2,] -0.1365155
[3,] 11.8088378
Run Code Online (Sandbox Code Playgroud)

但正如你可以看到三种不同的方法.

是否存在嵌入式函数的最佳数量,还是应该总是尝试明确列出所有数学?函数中有多少级别的函数是最佳的?这两种方法的计算速度都优越吗?对此有经验吗?你怎么看待这个?欢迎任何意见或建议或链接,谢谢!

黑麦

r process

5
推荐指数
2
解决办法
317
查看次数

结合条件

我的重新编码尝试

df$test[(df$1st==(1:3) & df$2nd <= 4)] <- 1
df$test[(df$1st==(1:3) & df$2nd <= 5)] <- 2
df$test[(df$1st==(1:3) & df$2nd <= 6)] <- 3
Run Code Online (Sandbox Code Playgroud)

导致"longer object length is not a multiple of shorter object length"警告和大量的NA以s df$test,即使一些重新编码正常工作.
我错过了什么?任何帮助赞赏.

DW

r

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

R中的编码原则 - 寻找用于在R中编写复杂程序的书籍/网络教程

我是一名经验丰富的R用户,拥有一支由R开发人员组成的团队.但是,我发现当我们的程序开始增长时,管理和调试变得非常困难,并且作为一个团队工作.

我是一个C++/Java/Python用户,虽然这看起来与这三者中的Python最相似,但我仍然觉得很难从已知的Java和Python"最佳实践"推断到R.

寻找一本书或教程讨论编码约定和R软件工程原理,也许是OOP的东西?

r software-design

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

标签 统计

r ×6

apply ×1

coding-style ×1

elisp ×1

emacs ×1

ess ×1

process ×1

software-design ×1