r语言 c(-2 ),R语言学习笔记(二)

cases form Introductory statistics whith R by Peter Dalgaard)

2011.03.21

###R镜像官方网站(http://ftp.ctex.org/mirrors/CRAN/)

1、对矩阵的操作,可以利用matrix函数,并且,用rownames()函数给矩阵赋予名字

x

rownames(x)

x

[,1] [,2] [,3] [,4]

A 1 2 3 4

B 5 6 7 8

C 9 10 11 12

2、对于矩阵的合并,按行合并或者按列合并cbind()\rbind()

cbind(A=1:4,B=5:8,C=9:12)

A B C

[1,] 1 5 9

[2,] 2 6 10

[3,] 3 7 11

[4,] 4 8 12

> rbind(A=1:4,B=5:8,C=9:12)

[,1] [,2] [,3] [,4]

A 1 2 3 4

B 5 6 7 8

C 9 10 11 12

3、因子的定义

text.pain

factor(text.pain)

4、利用data.frame()来讲两个向量合并成一个矩阵

vetor1

vetor2

d

5、条件选择,可以利用条件,对别的向量进行操作

vetor1

vetor2

a0]##选出向量1中,当向量vetor2中数大于0所对于的数值。

[]号内为选择的条件

intake.post[intake.pre > 7000 & intake.pre <= 8000]

6、对于缺损值NA,利用is.na(x)来寻找

7、d[d$intake.pre>7000,],对于数据库d,在[]中给出d的条件,非常有用

intake.pre intake.post

8 7515 5975

9 7515 6790

10 8230 6900

11 8770 7335

第33页

2011.03.22

1\对数据框中子集的操作###数据框thuesen,包含个向量内容,其中选择,blood.glucose<7的,条件部分

和上面的方括号条件设定有点类似。

vetor1

vetor2

d

thue2

> thue2

2、##对子集中的数值进行转换,结果将会在转换后的矩阵中增加一列转换的那列结果

> thue3

> thue3

3、##对一个矩阵进行拆分,函数split()##其中order()函数,是对sort()函数中的原来数据的位置进行罗列

4\排序函数sort()

data1

sort(data1)

order(data1)

######对于一个矩阵,要利用其中的一个向量来进行排序怎需要用到order()函数

其中order(sex,age)代表先以性别进行排序,再用年龄进行排序,order获取的是顺序值

5、###apply系列函数的应用

apply(a4[,2:6], 1, mean)##代表对于矩阵a4,从2列到第6列开始,取平均值mean,其中参数“1”为按

##行计算,如果括号中参数为2,则按列计算,mean可以变为sd,sum、中值median等计算。

case:

m

apply(m, 2, min)

result: [1] -1.1616653 -0.7892404 0.3189893

lapply(thuesen, mean, na.rm=T)和sapply(thuesen, mean, na.rm=T)是等效的,其中对于na.rm=T

代表的是缺损值不进入计算

6\高斯分布随机函数Gaussian(normal):形式为rnorm(n,mean=0,sd=1);

随机数runif(n, min=0, max=1)

7\排序range(x)其功能等同于才c(min(x),max(x))

8\关于协方差的计算var(x,y),如果是矩阵或者数据框,则用cov(x,y)来表示。

####二、关于制图

1、基本的制图函数形式

x

y

plot(x, y, main="Main title", sub="subtitle",xlab="x-label", ylab="y-label")

###其中main为主标题,sub为副标题,xlab为x轴的名字,ylab=为y轴的名字。其他参数还有很多,比如

###add=FALSE为不叠加到前一个图形上,如果为TURE叠加到前面一个图上,如果有的话;axes=TURE则

绘制边框,如果是FALSE则不绘制边框。type="p":点图;“l”线图;“b”点连线图。xlim=c(1,10),xlim=rang(x)

用来指定xy轴的上下限

2、部分比较有用的绘图低级命令

points(x,y)添加点

lines(x,y)添加线

text(x,y,labels,)在(x,y)处添加用labels指定的文字,典型用法是plot(x,y,type="n");text(x,y,name)

abline(h=y)在纵坐标y处化直线

abline(v=x)在横坐标x处画直线,很有用的函数

abline(lm.obj)画由lm.obj确定的回归线;如lm.obj

3、关于坐标轴axis的设定

axis(2,at=seq(0.2,1.8,0.2))##其中,2代表y轴,如果是1则代表x轴,坐标轴的形式中的分界点

at为从0.2开始到1.8结束,中间间隔为0.2

box()设置外边框

4、联合不同的图形

x

hist(x,freq=F)

curve(dnorm(x),add=T)

h

ylim

hist(x, freq=F, ylim=ylim)

curve(dnorm(x), add=T)

5、编写函数的相关函数

x

repeat{

x

if (abs(x*x-y) < 1e-10) break

}

x

###if给出条件语句,如果符合那么执行下面的步骤,case中即break中断

x

plot(x, x, ylab="y", type="l")

for ( j in 2:8 ) lines(x, x^j)

##for语句的应用及相关的格式

6、ls()给出所有的工作空间内的对象;rm(height, weight, bmi)移除相关的对象;rm(ls())移除所有对象

7、保存工作空间及所有的计算过程save.image("ZDVI_y2_3.rdata")注意保存文件名的后缀名.rdata

8、移除文件包detach("package:survival")

基本的学习结束。

三、概率和分布(probablity and distributions)

1\随机采样

sample(1:40,5)###在1到40的数中随机采集5个数

sample(c("H","T"), 10, replace=T)##当采样个数大于向量的元素个数时,利用replace可以重复

[1] "T" "T" "T" "T" "T" "H" "H" "T" "H" "T"

sample(c("succ", "fail"), 10, replace=T, prob=c(0.9, 0.1))##不均一的概率采样,其中prob中

设置0.9代表采集到succ的概率为90%

[1] "succ" "succ" "succ" "succ" "succ" "succ" "succ" "succ" "succ" "succ"

2、1/choose(40,5)###函数40个数中选择5个的概率

3、画随机曲线,dnorm(x),表示x的密度,

x

plot(x,dnorm(x),type="l")

等效函数为curve(dnorm(x), from=-4, to=4);

4、1-pnorm(160,mean=132,sd=13)###对于平均值为132,标准差为13的一组数列,其中一个数值为160或者比这更大的概率为

[1] 0.01562612

5、pbinom(16,size=20,prob=.5)

[1] 0.9987116

6、###关于正态分布95%自信区间的获取

xbar

sigma

n

sem

sem

[1] 5.366563

xbar + sem * qnorm(0.025)

[1] 72.48173

xbar + sem * qnorm(0.975)

[1] 93.51827 ###获得95%置信区间的上下数值

In professional statistics they are used to create simulated data sets in order to study the accuracy of mathematical approximations and

the effect of assumptions being violated.

rbinom(10,size=20,prob=.5)###10为重演十次,20为可能性,prob=0.5为概率值

[1] 12 11 10 8 11 8 11 8 8 13

###测试抛硬币的函数哪个要好点的算法,两个好像差不多

a

b

sum(a)

sum(b)

###关于正态分布的自编函数normal.fun()

normal.fun

{

xbar

sigma

n

sem

border1

border2

vetor2

return(vetor2)

}

b

normal.fun(b,0.05)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值