打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
R语言编程艺术 第2章 向量(上)

2.1 标量、向量、数组与矩阵

向量长度:length()
矩阵、数组本质上是向量。

2.2 声明

变量可以直接赋值,无需提前生命,但是不可以直接引用向量中的元素,即不可以突然冒出y[2]。

2.3 循环补齐

在对两个向量使用运算符时,如果要求这两个向量具有相同的长度,R会自动循环补齐(recycle),即重复较短的向量,直到它与另一个向量长度相匹配。
例子:


矩阵也是循环补齐的:

2.4 常用的向量运算

向量运算,是两个向量对应位置的子元素逐一运算。
向量索引,取子集操作x[c(1,3)]
创建向量:
“:”生成指定范围内数值构成的向量。
seq()(由sequence得来),用来生成等差序列
rep()重复向量常数,参数times指定整体重复次数,each指定每个元素重复次数。

2.5 使用all()和any()

any() 和all() 函数分别报告其参数是否至少有一个或全部为TRUE,返回逻辑值。
扩展案例:寻找连续出现1 的游程

findruns <>function(x,k{
   n <>
   runs <>
   for (i in 1:(n-k+1)) {
      if (all(x[i:(i+k-1)]==1)) runs <>
   }
   return(runs)
}

为提高运算速度,预先分配内存空间

findruns1 <>function(x,k{
   n <>
   runs <>
   count <>0
   for (i in 1:(n-k+1)) {
      if (all(x[i:(i+k-1)]==1)) {
         count <>1
         runs[count] <>
      }
   }
   if (count > 0) {
      runs <>1:count]
   } else runs <>
   return(runs)
}

2.6 向量化运算符

多数函数是向量输入,向量输出。sapply可实现向量输入,矩阵输出。如果要把输入限制为标量:

 function(x,c{
  if (length(c)!=1) stop('vector c not allowed')
  return((x+c)^2)
}


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
收藏|零基础学R,人心看不透但是我可以教你一眼看透矩阵的本质
R语言笔记4:向量、矩阵的数学运算
3D空间基础概念之一:点、向量(矢量)和齐次坐标
矩阵论基础知识2(正交、 Givens 变换、Householder变换)
Matlab基本函数
R语言学习笔记
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服