R语言的命名相对松散,没有一致的命名规范,下面是几种在R中常见的命名规范。

  • 全小写(alllowercase):所有字母都采用小写的格式,并且单词之间不用分隔符。如 searchpaths, srcfilecopy。这种命名方式在 MATLAB 中较为常见;
  • 点号分隔(period.separated):所有字母用小写,并且单词之间用英文句号分隔。这种命名方式是R所独有的,并且在核心函数上可见,如 as.numeric, read.table;
  • 下划线分隔(underscore_separated):所有字母小写,并且单词之间用下划线分隔。如 seq_along, package_version。这种命名方式多见于 C++, Perl 和 Ruby;
  • 小驼峰法(lowerCamelCase):如 colMeans, suppressPackageStartupMessage。这种命名法多见于Java, JavaScript;
  • 大驼峰法(UpperCamelCase):如Vectorize, NextMethod。这种命名法多见于Java, Python 和 JavaScript。

还要注意的一点是,在 R 中,以点(dot)开头的对象在某种程度上说是隐藏的,这个性质与 Linux 的文件系统中的情况是类似的。

这里找到了有四种现成的编码规范说明:

还是那句话,不管遵循哪种规范,请保持代码规范一致。

想知道哪种命名规范在 R 里比较流行吗?从 CRAN (Comprehensive R Archive Network)中的2668个包中抓出62497个函数名和316852个参数名,得到如下的比例图(注意有些名字的命名无法被唯一的归为一种命名法,比如plot就同时归到alllowercase, period.separated, underscor_separated, lowerCamelCase 下)。

NamingConventionPercentage

 

 

 

 

 

 

 

文章来源:《The State of Naming Conventions in R》

登录

RStudio Server是通过浏览器与服务器交流的IDE,使用网址 http://<server-id>:8787 登陆,登陆使用的是服务器的账号和密码, 要注意的是 RStudio 不允许使用系统用户登陆,即 UID 小于100的用户是无法通过 RStudio登陆的,所以root用户是无法登陆的。

见文:RStudio Server: Getting Started

配置

RStudio 有如下两个配置文件,这两个文件是当用户需要更改配置时自己生成的。

  • /etc/rstudio/rserver.conf
  • /etc/rstudio/rsession.conf

更改配置后可以用如下命令测试配置是否成功:

sudo rstudio-server test-config

配置成功后,需要重启RStudio Server服务来使之生效

sudo rstudio-server restart

几个可能会用到的配置:

rserver.conf
-- 更改RStudio Server的登陆连接端口为8089
www-port=8089
rsession.conf
-- 更改一个Session的超时时长为25分钟(默认这个时间是2个小时, 当用户长达2个小时内没有输入命令后,RStudio会挂起这个session, 将内容保存到硬盘上,在该用户下次登陆时再从硬盘恢复。), 把这个值设置成0就意味不设置超时时间。
session-timeout-minutes=25

见文:RStudio Server: Configuring the Server

操作

对 RStudio Server 的操作都是通过 rstudio-server 这个工具来实现的,默认安装在 /usr/sbin 下。

安装 RStudio 后,它会自动在文件夹/etc/init.d下生成 rsudio-server.conf 文件 来实现 rsudio-server 进程的自动启动。手动操作的命令如下:

	sudo rstudio-server stop
	sudo rstudio-server start
	sudo rstudio-server restart

操作Session的命令如下:

列出当前所有的活跃Session
sudo rstudio-server active-sessions
挂起某个Session
sudo rstudio-server suspend-session
强制挂起某个Session
sudo rstudio-server force-suspend-session
挂起所有Session
sudo rstudio-server suspend-all
强制挂起所有Session
sudo rstudio-server force-suspend-all

当系统需要维护时,可以通过如下命令通知在线用户

sudo rstudio-server offline

重新上线:

sudo rstudio-server online

见文:RStudio Server: Managing the Server

内部收益率(Internal Rate of Return,IRR)也叫 Economic Rate of Return,在资本预算中用来对投资利润进行评估和比较的,它也被称为贴现现金流的收益率(Discounted Cash Flow Rate Of Return,DCFROR)。在储蓄和贷款中,它也被称为有效利率(实际利率,Effective Rate of Return)。内部收益率里的“内部”一词表明这种收益率的计算式不考虑经济环境因素,如利率的通胀。

计算投资的内部收益率就是在计算该投资的年化复合有效收益率。假设一项投资的现金流时间序列是(n,C_n),其中n=0,1,...,N,那么就是要计算出这样的内部收益率r满如如下等式:

\mathrm{NPV} = \sum_{n=0}^{N}\frac{C_n}{(1+r)^n} = 0

其中的 NPV 代表净现值(Net Present Value)。

例子

假设一项投资的现金流序列如下:

(n) 现金流(C_n)
0 -123400
1 36200
2 54800
3 48100

那么 IRR 的值r由下式给出:

\mathrm{NPV} = -123400 + \frac{36200}{1+r} + \frac{54800}{(1+r)^2} + \frac{48100}{(1+r)^3} = 0

可以计算得到此处r=5.96\%.

计算

用 Excel 计算

在 Excel 中用 IRR() 函数可以直接计算,如下图所示
IRR-Excel计算
IRR(values, [guess]) 函数第二个参数一般不用给出,当原函数无法给出正确值时再给 IRR 函数配上第二个参数,即内部收益率的估计值。

在线网站计算

可以在如 DataDynamica 类型的在线网站直接进行计算。

datadynamica_IRR

这个网站还指出了用 Excel 计算 IRR 时可能会得到错误值,Are you using a false IRR generated from Excel or handheld financial calculator.