• R语言易错点(持续更新中~~)


    1.R向量元素的索引(下标)是从1开始的,而非0

    1. >x
    2. [1] 1 2 4
    3. >x[3]
    4. [1] 4

    2.[]和[ [ ] ]

    1. mylist<-list(stud.id=1234,
    2. + stud.name="Tom",
    3. + stud.marks=c(10,3,14,25,19))
    4. > mylist
    5. $stud.id
    6. [1] 1234
    7. $stud.name
    8. [1] "Tom"
    9. $stud.marks
    10. [1] 10 3 14 25 19
    11. mylist[[1]]
    12. #输出
    13. [1] 1234
    14. mylist[1]
    15. #输出
    16. $stud.id
    17. [1]1234
    18. mode(mylist[[1]])
    19. #输出
    20. [1] "numeric"
    21. mode(mylist[1])
    22. #输出
    23. [1] "list"

    mylist[[1]]

    列表的第一个组件的值

    类型为”numeric“

    mylist[1]

    第一个成分的子列表

    类型为“list”

    3.标量和一元向量

    标量是只包含一个单一数值的数据类型,而长度为一的向量是包含一个元素的向量

    1. # 标量
    2. x <- 5
    3. # 长度为一的向量
    4. y <- c(5)
    5. 通常情况下,标量可以被看作一元向量
    6. # 标量
    7. x <- 5
    8. # 长度为一的向量
    9. y <- c(5)
    10. # 进行乘法运算
    11. result1 <- x * x
    12. result2 <- y * y
    13. # 输出结果
    14. print(result1)
    15. print(result2)
    16. [1] 25
    17. [1] 25
    18. #注意:使用向量化的运算符会使得函数也向量化
    19. #这也适用于很多内置函数,例如round()
    20. > y<-c(1.2,3.9,0.4)
    21. > z<-round(y)
    22. > z
    23. [1] 1 4 0
    24. #round()函数能应用到向量y的每一个元素中,标量实际上就是一元向量,所以对单个数值使用round()函数,只是一种特殊情况
    25. round(1.2)
    26. [1] 1
    27. #诸如+这样的运算符实际也是函数
    28. > y<-c(12,5,13)
    29. > y+4
    30. [1] 16 9 17
    31. 这样写更加明显
    32. > '+'(y+4)
    33. [1] 16 9 17
    34. #在这里我们定义f(),我们希望c是标量,但实际上,他是一个长度为1的向量
    35. #即使我们调用f()时给c指定的是单个数值,在f()计算x+c时,他也会通过循环补齐的方式延展为一个向量。
    36. > f<-function(x,c){
    37. + return ((x+c)^2)
    38. + }
    39. > f(1:3,0)
    40. [1] 1 4 9
    41. #这意味着f()可以使用显式的向量给c赋值
    42. f(1:3,1:3)
    43. [1] 4 16 36
    44. 如果想把c限制为1个标量
    45. > f<-function(x,c){
    46. + if(length(c)!=1)
    47. + stop("vector c not allowed")
    48. + return((x+c)^2)
    49. + }

    由以上例子可以总结出以下结论

    1.使用向量化的运算符会使得函数也向量化

    2. 内置函数和运算符号都可以实现向量化操作,运算符其实是一种函数,这种将运算符作为函数使用的方式被称为函数调用运算符。


    内容持续更新中~💖💖💖💖 

  • 相关阅读:
    Apache Airflow (九) :Airflow Operators及案例之BashOperator及调度Shell命令及脚本
    uni-app的uni-list在真机调试中无法显示
    如何在SpringBoot中集成MyBatis?
    不用ps怎么修改图片?电脑图片在线处理的方法
    【面经】华为车BU面经
    datagrip 相关数据连接信息无缝迁移
    奔走相告,一波福利来袭! “Python量化场景编程技术手册”出炉!
    财长耶伦和她诺奖丈夫的千万身家
    VBA驱动SAP GUI实现办公自动化(一)
    web开发技术
  • 原文地址:https://blog.csdn.net/weixin_69884785/article/details/132529611