R语言学习笔记2

本文详细介绍了R语言中向量的创建、修改、运算和逻辑判断等操作,包括添加、删除元素,使用append函数,向量运算如加减乘除、幂运算、求余数和整除,以及逻辑判断如比较大小、查找元素位置等。同时,展示了向量的统计函数,如求和、最大值、最小值、中位数、四分位数等。此外,还提到了向量在不一致长度时的运算规则。
摘要由CSDN通过智能技术生成

向量编辑

添加向量元素

> x
  [1]   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35
 [36]  36  37  38  39  40  41  42  43  44  45  46  47  48  49  50  51  52  53  54  55  56  57  58  59  60  61  62  63  64  65  66  67  68  69  70
 [71]  71  72  73  74  75  76  77  78  79  80  81  82  83  84  85  86  87  88  89  90  91  92  93  94  95  96  97  98  99 100
> x[101] <- 101
> x
  [1]   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35
 [36]  36  37  38  39  40  41  42  43  44  45  46  47  48  49  50  51  52  53  54  55  56  57  58  59  60  61  62  63  64  65  66  67  68  69  70
 [71]  71  72  73  74  75  76  77  78  79  80  81  82  83  84  85  86  87  88  89  90  91  92  93  94  95  96  97  98  99 100 101
> v <- 1:3
> v[c(4,5,6)] <- c(4,5,6)
> v
[1] 1 2 3 4 5 6

 在向量中间插入一个元素。append函数

> append(x=v,values=99,after=1)
[1]  1 99  2  3  4  5  6

 删除向量和删除向量中的某一个元素(删除某一个元素的逻辑,就是不显示其中的元素,然后重新赋予给该向量)

> l
  one   two three  four 
    1     2     3     4 
> l[-c(1:2)]
three  four 
    3     4 
> l <- l[-c(1:2)]
> l
three  four 
    3     4 
> rm(l)
> l
错误: 找不到对象'l'

直接修改其中个某个元素值

> y <- c(1:10)
> y
 [1]  1  2  3  4  5  6  7  8  9 10
> names(y) <- c("one","two","three","four","five","six","seven","eight","nine","ten")
> y
  one   two three  four  five   six seven eight  nine   ten 
    1     2     3     4     5     6     7     8     9    10 
> y["four"] <- 101
> y
  one   two three  four  five   six seven eight  nine   ten 
    1     2     3   101     5     6     7     8     9    10 

***字符串向量和数值向量

&&&不要把字符串向量复制给数值向量,如果这样操作的话,数值向量会变为字符串向量。

向量运算

> x <- c(1:10)
> x
 [1]  1  2  3  4  5  6  7  8  9 10
> x=1
> x <- c(1:10)
> x+1
 [1]  2  3  4  5  6  7  8  9 10 11
> x-7
 [1] -6 -5 -4 -3 -2 -1  0  1  2  3
> x <- x+1
> x
 [1]  2  3  4  5  6  7  8  9 10 11
> y <- seq(1,100,length.out = 10)
> y
 [1]   1  12  23  34  45  56  67  78  89 100
> x+y###加法
 [1]   3  15  27  39  51  63  75  87  99 111
> x*y###乘法
 [1]    2   36   92  170  270  392  536  702  890 1100
> x^y###幂运算
 [1]  2.000000e+00  5.314410e+05  7.036874e+13  5.820766e+23  1.039456e+35  2.115876e+47  3.213876e+60  2.697216e+74  1.000000e+89 1.378061e+104
> y%%x###求余数
 [1] 1 0 3 4 3 0 3 6 9 1
> y%/%x###整除运算
 [1] 0 4 5 6 7 8 8 8 8 9

当元素不一致的向量运算时,会循环补齐。(其中长向量的元素个数必须时另一个的倍数才可以运算,否侧会报错),我的电脑版本,它也运算了,计算到那就就显示到那里。

> z <- c(1:3)
> z
[1] 1 2 3
> z+x
 [1]  3  5  7  6  8 10  9 11 13 12
Warning message:
In z + x : 长的对象长度不是短的对象长度的整倍数

向量逻辑判断

> x>5
 [1] FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
> x==y
 [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
> x %in% y
 [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE

==  和 %in% 一样的。

abs()计算绝对值

sqrt()计算一个非负实数的平方根

exp()函数:计算以自然常数e为底的指数函数值

getwd())函数:获取当前工作目录的信息

setwd()函数:设定新的工作目录

assign()函数:相当于等号赋值 assign(“n”,10)就等于n=10

ceiiling()函数:向上取整数

floor()函数:向下取整数

 

> ceiling(c(-1.2,2.1))###向上取整数
[1] -1  3
> floor(c(-1.2,2.1))###向下取整数
[1] -2  2
> trunc(c(-1.2,2.1))##取整数
[1] -1  2
> round(c(-1.2,2.1))##保留小数,默认时没有!
[1] -1  2
> round(c(-1.2,2.1),digits = 1)###保留小数
[1] -1.2  2.1
> signif(c(-1.2,2.1),digits = 1)###有效数字
[1] -1  2
> vec <- 1:100
> vec
  [1]   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17  18
 [19]  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36
 [37]  37  38  39  40  41  42  43  44  45  46  47  48  49  50  51  52  53  54
 [55]  55  56  57  58  59  60  61  62  63  64  65  66  67  68  69  70  71  72
 [73]  73  74  75  76  77  78  79  80  81  82  83  84  85  86  87  88  89  90
 [91]  91  92  93  94  95  96  97  98  99 100
> sum(vec)#求和
[1] 5050
> max(vec)#最大值
[1] 100
> min(vec)#最小值
[1] 1
> range(vec)#最小值和最大值
[1]   1 100
> mean(vec)#平均值
[1] 50.5
> var(vec)#方差
[1] 841.6667
> sd(vec)#标准差
[1] 29.01149
> round(var(vec),digits = 2)#计算方差保留小数2位
[1] 841.67
> round(sd(vec),digits = 2)#计算标准差保留小数2位
[1] 29.01
> prod(vec)#乘的积
[1] 9.332622e+157
> median(vec)#中位数
[1] 50.5
> quantile(vec)#4分位数
    0%    25%    50%    75%   100% 
  1.00  25.75  50.50  75.25 100.00 
> quantile(vec,c(0.4,0.5,0.8))#计算不同的分位数
 40%  50%  80% 
40.6 50.5 80.2 
> t <- c(1,4,2,5,7,9,6)
> which.max(t)#返回的是最大值的索引值
[1] 6
> which.min(t)#返回的是最小值的索引值
[1] 1
> which(t==7)#返回7的索引值
[1] 5
> which(t>5)#返回大于5的索引值
[1] 5 6 7
> which(t>2)#返回大于2的索引值
[1] 2 4 5 6 7
> t[which(t>2)]#通过索引值再重新返回元素值
[1] 4 5 7 9 6

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值