r语言中的c函数的定义代码,R语言的一些概念及操作

一、R的基本概念和操作

1.1 R环境

2+3

1.2 常量

R中的常量基本分为四种类型:逻辑型、数值型、字符型和因子型。下面是生成因子的命令:

x"beijing","shanghai","beijing","beijing","shanghai")

yy

也可以写为:

y1,0,1,1,0)) #这里levels为因子水平,表示有哪些因子.c()为连接函数,把单个标量连成向量.

y

y==0 #有了变量名,首先可以将y与0进行比较

1.3 算术运算

算术运算是R中的基本运算,R默认的运算提示符是”>”,在后可以进行运算,下面先举几个例子:

(1)计算7*3,可执行如下命令:

7*3

(2)计算(7+2)*3可执行如下命令:

(7+2)*3

也可以调用R的内置函数,如:

(3)计算log(2)(12/3),可执行如下命令:

log(12/3,2)

1.4 赋值

给变量赋值用”=”或”x

y=1+x

y=4

二、向量的生成和基本操作

2.1 向量的生成

R中有三个非常有用的命令可以生成向量

1)c.

c是英文单词concatenate的缩写,是连接命令,基本运算如下:

a15,27,89)

a

b"cat","dog","fish")

b

2)seq.

seq是生成等差数列的命令,其语法结构如下所示:

seq(from,to,by,length,…),其中from表示序列起始的数据点,to表示序列的终点,by表示每次递增的步长,默认状态步长为1,length表示序列长度.如:

seq(1,10)

seq(100,0,-20)

seq(1,10)还可以用更简单的方式表示,比如:

1:10 #seq(1:10)即1:n表示从1到n间隔为1的数列

seq(0,1,0.05)

3)rep

rep是生成循环序列的命令,其语法结构如下所示:

rep(x,times)

其中x表示序列所循环的数或向量,times表示循环重复的次数.

例A.1

(1)生成由5个2组成的向量;

(2)将”1”,”a”依次重复3遍;

(3)生成依次由10个1,20个3和5个2组成的向量.

rep(2,5)

rep(c(1,"a"),3)

rep(c(1,3,2),c(10,20,5))

rep(c(1,4,6),length=5)

2.2 向量的基本操作

2.2.1向量a中第i个位置的元素表示

a=2:6

a[1]

a[length(a)]

a[6]

a[c(1,3,6)]

2.2.2在向量上插入新的数据

在向量a的第i个位置后插入新数据z的方法是:

c(a[1:i-1],z,a[i:length(a)])

下面在向量a的第三个位置插入数值9:

c(a[1:2],9,a[3:5])

2.2.3向量与向量的合并

将向量a与向量b合并为一个新的向量的方法是:

a2,3,4,5,6)

b35,40,58)

aba,b);ab #???

za,"good") #如果将非数值型向量和数值型向量合并,结果是所有数据类型被统一到R所默认的基本类型——字符型,此时如果对a进行数值运算会发生错误.

z

2.2.4在向量中删除数据

a[-i]表示删除向量a的第i个元素,如:

a=2:6

a

aa[-2]

a #删除一串数用rmarkdown不会

2.2.5更新向量中的数据

将a向量中的第5个位置改为22的程序如下:

a=2:6

a[5]22

a

2.2.6把向量逆向排序

b=1:b

rev(b)

2.2.7对向量排列

b=c(2,9,2,6,5)

sort(b)

2.2.8去掉缺失值

d=c(3,9,2,NA,6,5)

na.omit(d)

例题A.2 (非参P304)

score=c(90,0,78,63,84,36,NA,84,58,80,75,85,72,78,86)

grade=c(3,3,3,4,3,3,3,3,3,3,4,3,4,4)

#(1)

length(score)

#(2)

z=na.omit(score);length(z)

#(3)

score[7]=80

#(4)

score3=score[grade==3]

score4=score[grade==4]

#(5)

h=rev(sort(score3));h

z=rev(sort(score4));z

#(6)

task1=c(h,z);task1

2.3 向量的运算

2.3.1标量和向量的运算:

x=c(1,2,5)

2*x

10+x

2.3.2向量和向量的运算:

x=c(1,2,5)

y=c(10,11,12)

x+y

max(x) #最大值

mean(x) #"mean":均值

2.4 向量的逻辑运算

向量也可取逻辑值TURE和FALSE,可用来比较是非结果.如:

5>6

x=49/7

x==7 #"=="相等

求向量x中大于1小于5的元素:

x=c(1,2,5)

x[x>1&x<5]

三、高级数据结构

3.1 矩阵的操作和运算

3.1.1定义矩阵

定义矩阵的语法是:

matrix(data,nrow,ncol,[byrow=F])

例A.3 把向量序列c(1,2,3,4,5,6)转换为3*2的矩阵:

x=1:6

x.matrix=matrix(x,nrow=3,ncol=2,byrow=T)

x.matrix

#给矩阵赋予列名:

dimnames(x.matrix)=list(NULL,c("a","b"))

x.matrix

3.1.2矩阵元素和行、列的选取

矩阵a中第i行第j列位置的元素表示为a[i,j].比如:

x=1:6

x.matrix=matrix(x,nrow=3,ncol=2,byrow=T)

x.matrix[1,2]

x.matrix[,2] #"a[,j]"选取a中第j列

3.1.3矩阵的运算

a=matrix(c(1,2,3,4),2)

b=matrix(c(3,1,5,2),2)

2*a

a+b

t(a) #a的转置

solve(a,b) #求"ax=b"的解"x"

apply函数可以对指定矩阵的行、列应用R中所有用于向量计算的函数,它的语法是:

apply(data,dim,function,…)

data表示待处理矩阵或数组的名称;dim表示指定的维,1表示行,2表示列;”…”表示所用函数参数的设定.如,计算a的列最大值:

a=matrix(c(1,2,3,4),2)

apply(a,2,max)

3.1.4矩阵的合并

增加若干列用cbind函数,增加若干行用rbind函数.如:

x=1:6

x.matrix=matrix(x,nrow=3,ncol=2,byrow=F)

add=c(5,6)

cbind(a,add)

rbind(a,add)

3.2 数组

矩阵是二维向量,数组则是多维矩阵,数组的语法为:

array(data,dimnames)

a1:24,c(3,4,2))

a #"a[,,1]"表示取出第一维矩阵

3.3 数据框

定义一个数据框:

a=matrix(c(1,2,3,4),2)

t=c("good","good")

new.a=data.frame(a,t)

new.a

attach()命令将所需处理的数据绑定.attach用法如下(解除绑定用”detach()”函数命令):

a=matrix(c(1,2,3,4),2)

t=c("good","good")

new.a=data.frame(a,t)

attach(new.a)

t

X1

3.4 列表

列表是比数据框更为松散的数据结构,列表可以将不同类型、不同长度的数据打包,而数据框则要求被插入的数据长度和原来的长度一致.比如:

a=matrix(c(1,2,3,4),2)

t=c("good","good")

list(a,t)

四、数据处理

4.1 保存数据

4.2 读入数据

4.3 数据转换

a=factor(c(1,3,5));levels=c(1,3,5)

a

as.numeric(a)

a1=as.character(a)

a2=as.numeric(a1)

a2

五、编写程序

5.1 循环和控制写

1)控制结构

x=1

if(x==1){print("x is ture")}else{print("x is false")}

2)循环结构

total=0

for(i in 1:100){total=total+i}

total

5.2 函数

f1=function(x){x^2+sin(x)}

f1(10)

f1(1:9)

f2=function(x,y){x^2;x+y;x^2+y}

f2(2,2)

f3=function(x,y){return(x^2);x+y;x^2+y}

f3(3,3)

六、基本统计计算

6.1 抽样

sample(1:10,10)

x=sample(1:10,10,replace=T)

x

unique(x)

sample(c(0,1),10,replace=T,c(1/4,3/4))

6.2 统计分布

dnorm(0,0,1)

x=seq(-2,2,1)

dnorm(x,0,1)

pnorm(0,0,1)

qnorm(0.5,0,1)

rnorm(10,0,1)

七、R的图形功能

7.1 plot函数

x=seq(0,10,0.5)

y=2*sin(0.2*x)+log(x^2+3*x+1)

plot(x,y,xlab="X Is Across",ylab="Y Is Up")

points(x^0.5,y,pch=3)

points(x,8-0.7*y,pch="m") #use a "m" symbol

lines(x,y,lwd=2)

title("Titles are Tops")

7.2 多图显示

par(mfrow=c(2,2))

x=rnorm(100,2,3)

y=7:1

pie(y,col=rainbow(7),radius=1)

hist(x,col=5)

boxplot(x)

barplot(c(1,2,3))

by Rain-32

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值