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
文章目录
- 例子1: 将数据大于变量A赋值为1,小于变量A赋值为0
- 例子2:相当于多路替换
- :star::star::star: 例子2改版【推荐】
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