R软件学习.2010.0120_002

首先介绍向量相关内容

> # 向量

> #1 赋值 三种方法

> x<-c(2,3,4,12,6,3,77,21)

> x

[1]  2  3  4 12  6  3 77 21

> c(4,5,6,2,3,8,7,1,9)->xx

> xx

[1] 4 5 6 2 3 8 7 1 9

> assign("xxx",c(2,3,6,5,8,4,8,7))

> xxx

[1] 2 3 6 5 8 4 8 7

> Y<-c(x,100,xx,200,xxx)

> Y

 [1]   2   3   4  12   6   3  77  21 100   4   5   6   2   3   8   7   1   9

[19] 200   2   3   6   5   8   4   8   7

> #2 运算

> x<-c(-1,2,3);y<-c(3,7,8)

> v<-2*x+y+1;v

[1]  2 12 15

> x*y

[1] -3 14 24

> x/y

[1] -0.3333333  0.2857143  0.3750000

> x^2+y^2

[1] 10 53 73

> y^x

[1]   0.3333333  49.0000000 512.0000000

> #%/% ---- 表示整数除法

> #%% ----- 表示求余数

> 5%/%3

[1] 1

> 5%%3

[1] 2

> exp(1)

[1] 2.718282

> sqrt(y)

[1] 1.732051 2.645751 2.828427

> sqrt(-2)

[1] NaN

警告信息:

In sqrt(-2) : 产生了 NaNs

> sqrt(-2+0i)   # 复数开根号的正确方法

[1] 0+1.414214i

> #3 向量运算相关函数

> min(x)

[1] -1

> max(x)

[1] 3

> range(xx)

[1] 1 9

> #which.max,which.min 表示在第几个分量求到最大最小值

> which.min(x)

[1] 1

> which.max(x)

[1] 3

> #sum() 求向量分量之和, prod() 求向量分量连乘积, length() 求向量分量的个数

> #median() 求向量中位数, mean() 求向量均值, var() 求向量方差, sd() 求向量标准差

> #sort() 求顺序统计量,顺序统计量的下标由 order() sort.list() 给出

> x

[1] -1  2  3

> x<-c(10,6,4,8,7)

> sum(x)

[1] 35

> prod(x)

[1] 13440

> length(x)

[1] 5

> median(x)

[1] 7

> mean(x)

[1] 7

> var(x)

[1] 5

> sort(x)

[1]  4  6  7  8 10

> order(x)

[1] 3 2 5 4 1

> sort.list(x)

[1] 3 2 5 4 1

> # 等差数列

> 2.3:6

[1] 2.3 3.3 4.3 5.3

> 4:6.7

[1] 4 5 6

> # 注意 1:n 这种运算优先级比乘除法要高!

> n<-10

> 1:10-1

 [1] 0 1 2 3 4 5 6 7 8 9

> 1:n-1

 [1] 0 1 2 3 4 5 6 7 8 9

> 1:(n-1)

[1] 1 2 3 4 5 6 7 8 9

> #seq() 产生等距离间隔的数列

> # 格式 seq(from= 起始数值 ,to= 结束数值 ,by= 相应的中间间隔数值 )

> seq(7,10,by=0.5)

[1]  7.0  7.5  8.0  8.5  9.0  9.5 10.0

> # 另一种格式 seq(length= 数列长度 ,from= 起始数值 ,by= 相应的中间间隔数值 )

> seq(7,7,0.5)

[1] 7

> seq(length=7,7,0.5)

[1] 7.000000 5.916667 4.833333 3.750000 2.666667 1.583333 0.500000

> seq(length=7,from=7,0.5)

[1] 7.000000 5.916667 4.833333 3.750000 2.666667 1.583333 0.500000

> seq(length=7,from=7,by=0.5)

[1]  7.0  7.5  8.0  8.5  9.0  9.5 10.0

> #rep() 重复函数,将某向量重复若干次在放入新的变量中

> x<-c(1,2,3)

> x

[1] 1 2 3

> z<-rep(x,times=3)

> z

[1] 1 2 3 1 2 3 1 2 3

> # 逻辑向量,逻辑运算符有 <,<=,>,>=,==,!=,& ,| ,!

> x<-1:7

> x

[1] 1 2 3 4 5 6 7

> x>3

[1] FALSE FALSE FALSE  TRUE  TRUE  TRUE  TRUE

> z<-c(TRUE,FALSE, 真,假 )

> z

[1] 1 2 3 1 2 3 1 2 3

> z<-c(TRUE,FALSE,F,T)

> z

[1]  TRUE FALSE FALSE  TRUE

> #all 用来判断一个逻辑向量是否都为真值

> all(c(1,2,3,4,5,6,7)>3)

[1] FALSE

> #any 用来判断一个逻辑向量其中是否有真值

> any(c(1,2,3,4,5,6,7)>3)

[1] TRUE

> #NA 表示缺失的数据

> z<-c(1:5,NA)

> z

[1]  1  2  3  4  5 NA

> z<-c(1:5,na) # 注意大小写

错误 : 找不到对象 'na'

> #is.na() 用于检测数据中是否有缺失项,返回值为真,说明有缺失项

> is.na(Z)

错误 : 找不到对象 'Z'

> is.na(z)

[1] FALSE FALSE FALSE FALSE FALSE  TRUE

> # 将缺失项数据改为一个数值

> z[is.na(z)]<-1000

> z

[1]    1    2    3    4    5 1000

> #is.nan() 检测数据是否不确定, TRUE 为不确定

> #is.finite() 检测数据是否有限, TRUE 为有限

> #is.infinite() 检测数据是否为无穷, TRUE 为无穷

> x<-c(0/1,0/0,1/0,NA);x

[1]   0 NaN Inf  NA

> is.nan(x)

[1] FALSE  TRUE FALSE FALSE

> is.finite(x)

[1]  TRUE FALSE FALSE FALSE

> is.infinite(x)

[1] FALSE FALSE  TRUE FALSE

> is.na(x)

[1] FALSE  TRUE FALSE  TRUE

> #4 字符型向量

> # 赋值

> y<-c("as","dfg","hjk","l")

> y

[1] "as"  "dfg" "hjk" "l" 

> #paste 函数可以把字符串的每个变量连成一个字符串,中间用空格分开

> paste("My","Job")

[1] "My Job"

> paste(y)

[1] "as"  "dfg" "hjk" "l" 

> paste(y[1],y[2])

[1] "as dfg"

> paste(y[1],y[2],y[3],y[4])

[1] "as dfg hjk l"

> # 连接的自变量可以使向量。自变量可以使数值变量,连接时自动转换成适当的字符串

> labs<-paste("X",1:6,sep="");labs

[1] "X1" "X2" "X3" "X4" "X5" "X6"

> # 分隔用的字符可以用 sep 参数指定。

> labs<-paste("X",1:6,sep='');labs

[1] "X1" "X2" "X3" "X4" "X5" "X6"

> paste("ABC","DEF",sep="-")

[1] "ABC-DEF"

> #paste 函数的另外几种用法

> paste(1:10) # 和下面的命令等同

 [1] "1"  "2"  "3"  "4"  "5"  "6"  "7"  "8"  "9"  "10"

> as.character(1:10)

 [1] "1"  "2"  "3"  "4"  "5"  "6"  "7"  "8"  "9"  "10"

> paste("Today is",date())

[1] "Today is Wed Jan 20 14:34:57 2010"

> paste(c('a','b'),collapse='.')

[1] "a.b"

> # 复数向量,一般格式 34+8i,complex() 函数生成复数向量

> x<-seq(-pi,pi,by=pi/10)

> y<-sin(x)

> z<-complex(re=x,im=y)

> plot(z)

> lines(z)

> #lines() 的作用是用实线连接散点图 , 所作复数 z=x+isinx

> # 对于复数运算 ,Re() 计算复数的实部 ,Im() 计算复数的虚部 ,Mod() 计算复数的模

> #Arg() 计算复数的幅角

> # 向量下标运算

> x<-c(4,5,6,7,8)

> x[3]

[1] 6

> # 可改变单独或多个元素的值

> x[c(1,3)]<-c(777,77777)

> x

[1]   777     5 77777     7     8

> # 逻辑向量 , v x 为等长的逻辑向量 ,x[v] 表示取出所有 v 为真值的元素

> x<-c(2,5,8)

> x<6

[1]  TRUE  TRUE FALSE

> x[x<6]

[1] 2 5

> # 可以将向量中的缺失数据赋值

> z<-c(-1,1,2,3,NA)

> z[is.na(z)]<-77777

> z

[1]    -1     1     2     3 77777

> # 也可以替换非缺失数据的值

> z<-c(-1,1:3,NA)

> y<-z[!is.na(z)]

> y

[1] -1  1  2  3

> z

[1] -1  1  2  3 NA

> # 或作相应的运算

> (z+1)[(!is.na(z)&z>0)]->x

> x

[1] 2 3 4

> (z+6)[(!is.na(z)&z>0)]->x

> x

[1] 7 8 9

> # 定义向量的分段函数

> # 例如 ,x<0 y=1-x;x>=0 y=1+x

> y<-numeric(length(x))

> y[x<0]<-1-x[x<0]

> y[x>=0]<-1+x[x>=0]

> #numeric 函数的功能是产生数值型向量

> # 下标的正整数运算

> v<-10:20;v

 [1] 10 11 12 13 14 15 16 17 18 19 20

> v[c(1,3,5,9)]

[1] 10 12 14 18

> v[1:5]

[1] 10 11 12 13 14

> v[c(1,2,3,2,1)]

[1] 10 11 12 11 10

> c("a","b","c")[rep(c(2,1,3),times=4)]

 [1] "b" "a" "c" "b" "a" "c" "b" "a" "c" "b" "a" "c"

> # 下标的负整数运算

> v[-(1:5)]

[1] 15 16 17 18 19 20

> v[-1]

 [1] 11 12 13 14 15 16 17 18 19 20

> v[-2]

 [1] 10 12 13 14 15 16 17 18 19 20

> # 表示扣除负号后面的数字所代表的下标的元素的运算

> # 取字符型值的下标向量

> age<-c(zhao=23,qian=43,sun=32,li=34);age

zhao qian  sun   li

  23   43   32   34

> age["sun"]

sun

 32

> fruit<-c(5,12,3,7)

> names(fruit)<-c("banana","orange","apple","peach")

> fruit

banana orange  apple  peach

     5     12      3      7

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值