R语言基础编程技巧汇编 - 3

1.       矩阵的广义逆

library(MASS)

?ginv

 

2.      画三维图

library(lattice)

x=seq(1:10)

y=seq(1:10)

z=seq(1:10)

print(cloud(z~x*y))

3.      order,sort,rank函数排序结果的解释

x <-c(1,7,6,0)

sort(x)

#[1] 0 1 6 7

order(x)

#[1] 4 1 3 2

rank(x)

#[1] 2 4 3 1

sort函数最容易理解,就是对原始数值排序,从小到大或者从大到小都可以。

order函数输出的则是原始索引,变换过程如下:


rank函数,顾名思义,是按数值大小进行冠亚季军形式的排序,但是并不改变原始序列。

在上例中,升序排序结果应该是0,1,6,7,也就是说,0是冠军,序号为11是亚军,序号为26是季军,序号是37是第四名,序号是4. 对于原始序列1,7,6,0rank函数告诉你:1的序号是27的序号是46的序号是30的序号是1,所以输出是2,4,3,1.

4.      向量的内积(点乘)

x %*% y就表示求向量x和向量y的内积,或者用crossprod(x,y)

5.       R程序可以编译成可执行程序(*.exe)吗?

目前还做不到,只能通过其他方式来实现这样的效果,但是前提都要安装R语言的运行环境。比如在Windows中,通过在批处理文件中运行R语言命令行的方式,可以实现让用户双击.bat文件来运行R程序。

6.       求导函数 

使用D或者deriv或者deriv3函数,以下是一个例子:

## Higherderivatives:

DD <-function(expr, name, order = 1) {

     if(order < 1) stop("'order' mustbe >= 1")

     if(order == 1) D(expr, name)

     else DD(D(expr, name), name, order - 1)

 }

DD(expression(sin(x^2)),"x", 3)

#-(sin(x^2) *(2 * x) * 2 + ((cos(x^2) * (2 * x) * (2 * x) + sin(x^2) * 

#   2) * (2 * x) + sin(x^2) * (2 * x) * 2))

7.       设定随机数的种子

set.seed()

设定随机数种子是为了让实验结果可以重现,能够使程序的调试变得方便,但是跟现实情况是相背离的,在最终的程序中,不应该设立随机数种子。

8.       产生多元正态分布的函数

MASS包中的mvtnorm函数

9.       strsplit函数对字符串进行分割 

x<-"12 24 384 987"

y<- unlist(strsplit(x," "))

y

[1] "12"  "24"  "384" "987"

 

还有一个常见的应用,把字符串分解成字符向量:

A <- 'abcde'

B <- strsplit(A,'')

unlist(B)

[1] "a" "b" "c""d" "e"

10. system.time记录时间函数

system.time()

11. 时间类型数据转换的问题!

首先设置当前语言环境,这个环境需要能够认出日期字符串,比如中文环境下,可以认出六月,英文环境则不行,设置环境的代码如下:

lct <- Sys.getlocale("LC_TIME") 

Sys.setlocale("LC_TIME", "C")

 

然后:

da<-"10-Jun-98"

as.Date(da,format="%d-%b-%y")

 

返回:“1998-06-10”

12. 获得字符的ASCII码

charToRaw("a")

13. 从CRAN Task Views看R的用途

Bayesian

Bayesian Inference

ChemPhys

Chemometrics and Computational Physics

Cluster

Cluster Analysis & Finite Mixture Models

Distributions

Probability Distributions

Econometrics

Computational Econometrics

Environmetrics

Analysis of Ecological and Environmental Data

ExperimentalDesign

Design of Experiments (DoE) & Analysis of Experimental Data

Finance

Empirical Finance

Genetics

Statistical Genetics

Graphics

Graphic Displays & Dynamic Graphics & Graphic Devices & Visualization

gR

gRaphical Models in R

HighPerformanceComputing

High Performance and Parallel Computing

MachineLearning

Machine Learning & Statistical Learning

Multivariate

Multivariate Statistics

NaturalLanguageProcessing

Natural Language Processing

Optimization

Optimization and Mathematical Programming

Pharmacokinetics

Analysis of Pharmacokinetic Data

Psychometrics

Psychometric Models and Methods

Robust

Robust Statistical Methods

SocialSciences

Statistics for the Social Sciences

Spatial

Analysis of Spatial Data

Survival

Survival Analysis

TimeSeries

Time Series Analysis

 

随着R的发展,Task Views分项越来越多了,记得几年前RTask Views只有那么寥寥几项!现在Task Views的分类很多,涉及的领域也很广,不仅仅研究计量、时间序列,还有很多统计、数据挖掘、生物、信息、环境等研究者也在用R。相信,再过一段时间Task Views的分类又会增添好多!

Tips:Task Views里找各个packages的作用,以及寻找您说需要的函数是最快捷的!

14. read.table导入中文乱码的问题

read.table("xxx.txt",encoding = "UTF-8")

15. kmeans函数中的nstart参数

意义为重复做kmeans算法的次数,每次的中心center都是随机选取的。一般对于大数据集,选择2025
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值