4. 数据处理:用R语言实现【多路替换】真高效!!

b站课程视频链接:
https://www.bilibili.com/video/BV19x411X7C6?p=1
腾讯课堂(最新,但是要花钱,我花99😢😢元买了,感觉讲的没问题,就是知识点结构有点乱):https://ke.qq.com/course/3707827#term_id=103855009
 
本笔记前面的笔记参照b站视频,后面的笔记参考了付费视频
笔记顺序做了些调整【个人感觉逻辑顺畅】,并删掉一些不重要的内容,以及补充了个人理解
系列笔记目录【持续更新】:https://blog.csdn.net/weixin_42214698/category_11393896.html

R语言的 与或非 :&        |        !

例子1: 将数据大于变量A赋值为1,小于变量A赋值为0

这个代码必须看懂,感觉生活中很多地方都用得到
rivers
rivers > 500 # 逻辑判断,不改变原来的值
rivers[rivers > 500] <- 1 # 将大于500的值,改成1
rivers

rivers <= 500 & rivers > 1 # 逻辑判断,不改变原来的值
rivers[rivers <= 500 & rivers > 1] <- 0 # 将小于等于500的值,改成1
rivers

> rivers
  [1]  735  320  325  392  524  450 1459  135  465  600  330  336  280  315  870
 [16]  906  202  329  290 1000  600  505 1450  840 1243  890  350  407  286  280
 [31]  525  720  390  250  327  230  265  850  210  630  260  230  360  730  600
 [46]  306  390  420  291  710  340  217  281  352  259  250  470  680  570  350
 [61]  300  560  900  625  332 2348 1171 3710 2315 2533  780  280  410  460  260
 [76]  255  431  350  760  618  338  981 1306  500  696  605  250  411 1054  735
 [91]  233  435  490  310  460  383  375 1270  545  445 1885  380  300  380  377
[106]  425  276  210  800  420  350  360  538 1100 1205  314  237  610  360  540
[121] 1038  424  310  300  444  301  268  620  215  652  900  525  246  360  529
[136]  500  720  270  430  671 1770

> rivers > 500  
  [1]  TRUE FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE  TRUE FALSE FALSE
 [13] FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE
 [25]  TRUE  TRUE FALSE FALSE FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE
 [37] FALSE  TRUE FALSE  TRUE FALSE FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE
 [49] FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE FALSE
 [61] FALSE  TRUE  TRUE  TRUE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE FALSE
 [73] FALSE FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE FALSE  TRUE  TRUE FALSE
 [85]  TRUE  TRUE FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE
 [97] FALSE  TRUE  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[109]  TRUE FALSE FALSE FALSE  TRUE  TRUE  TRUE FALSE FALSE  TRUE FALSE  TRUE
[121]  TRUE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE  TRUE  TRUE
[133] FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE  TRUE  TRUE

> rivers[rivers > 500] <- 1
> rivers
  [1]   1 320 325 392   1 450   1 135 465   1 330 336 280 315   1   1 202 329 290
 [20]   1   1   1   1   1   1   1 350 407 286 280   1   1 390 250 327 230 265   1
 [39] 210   1 260 230 360   1   1 306 390 420 291   1 340 217 281 352 259 250 470
 [58]   1   1 350 300   1   1   1 332   1   1   1   1   1   1 280 410 460 260 255
 [77] 431 350   1   1 338   1   1 500   1   1 250 411   1   1 233 435 490 310 460
 [96] 383 375   1   1 445   1 380 300 380 377 425 276 210   1 420 350 360   1   1
[115]   1 314 237   1 360   1   1 424 310 300 444 301 268   1 215   1   1   1 246
[134] 360   1 500   1 270 430   1   1

> rivers <= 500 & rivers > 1
  [1] FALSE  TRUE  TRUE  TRUE FALSE  TRUE FALSE  TRUE  TRUE FALSE  TRUE  TRUE
 [13]  TRUE  TRUE FALSE FALSE  TRUE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE
 [25] FALSE FALSE  TRUE  TRUE  TRUE  TRUE FALSE FALSE  TRUE  TRUE  TRUE  TRUE
 [37]  TRUE FALSE  TRUE FALSE  TRUE  TRUE  TRUE FALSE FALSE  TRUE  TRUE  TRUE
 [49]  TRUE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE FALSE FALSE  TRUE
 [61]  TRUE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE
 [73]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE FALSE FALSE  TRUE FALSE FALSE  TRUE
 [85] FALSE FALSE  TRUE  TRUE FALSE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
 [97]  TRUE FALSE FALSE  TRUE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
[109] FALSE  TRUE  TRUE  TRUE FALSE FALSE FALSE  TRUE  TRUE FALSE  TRUE FALSE
[121] FALSE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE FALSE  TRUE FALSE FALSE FALSE
[133]  TRUE  TRUE FALSE  TRUE FALSE  TRUE  TRUE FALSE FALSE

> rivers[rivers <= 500 & rivers > 1] <- 0
> rivers
  [1] 1 0 0 0 1 0 1 0 0 1 0 0 0 0 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 0 1 1 0 0 0 0 0 1
 [39] 0 1 0 0 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 0 1 1 1 0 1 1 1 1 1 1 0 0 0 0 0
 [77] 0 0 1 1 0 1 1 0 1 1 0 0 1 1 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 1
[115] 1 0 0 1 0 1 1 0 0 0 0 0 0 1 0 1 1 1 0 0 1 0 1 0 0 1 1

注意:
如果要求大于平均值的数为1,小于平均值为0,则上面的500,必须用变量存储。
要不然改成1之后,mean()函数就不对了
mean()函数是求数的平均值



例子2:相当于多路替换

在这里插入图片描述
做法:

mtcars$cyl==6
mtcars$cyl[mtcars$cyl==6] <- "six"
mtcars$cyl[mtcars$cyl==4] <- "four"
mtcars$cyl[mtcars$cyl==8] <- "eight"
mtcars$cyl

在这里插入图片描述

如果需要另起一列:
在这里插入图片描述



⭐️⭐️⭐️ 例子2改版【推荐】

如果需要改1000个,这个是最高效的办法

data("mtcars")
mtcars$cyl
mtcars$cyl <- as.factor(mtcars$cyl)
levels(mtcars$cyl)
levels(mtcars$cyl) <- c("four","six","eight")
levels(mtcars$cyl)
mtcars$cyl

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你说的白是什么白_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值