美文网首页R语言
R语言编程艺术 第2章 向量(上)

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

作者: 小洁忘了怎么分身 | 来源:发表于2019-01-25 23:53 被阅读4次

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 <- length(x)
   runs <- NULL
   for (i in 1:(n-k+1)) {
      if (all(x[i:(i+k-1)]==1)) runs <- c(runs,i)
   }
   return(runs)
}

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

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

2.6 向量化运算符

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

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

相关文章

  • R语言的数据结构(包含向量和向量化详细解释)

    更多内容请参考《R语言编程艺术》——————————————— 向量类型是R语言的核心。深入理解向量对R中数据结构...

  • R语言编程艺术 第2章 向量(上)

    2.1标量、向量、数组与矩阵 向量长度:length()矩阵、数组本质上是向量。 2.2声明 变量可以直接赋值,无...

  • [R语言] 《R语言编程艺术》 第2章 向量

    向量的三大核心内容:循环补齐筛选向量化 向量及其延伸 - 向量 单个数值(标量)没有单独的数据类型,是向量的一种...

  • R语言编程艺术 第2章 向量(下)

    2.7NA与NULL值 NA:缺失值向量中有一个缺失值NA,会导致mean()等函数计算出的结果均为NA。但可将n...

  • 【r<-基础|向量】R提取向量元素[与[[区分

    内容取自《R语言编程指南》。 []能够创建一个向量子集,[[]]可以提取向量中的元素。我们可以将一个向量比作10盒...

  • R基础快速入门(2)

    文集地址 R语言快速入门 R语言变量 R语言中的变量可以存储原子向量,原子向量组或许多R对象的组合 注意:使用ca...

  • R-----实战(一)

    最近在啃《R语言编程艺术》,今天主要记录一下几个实战的小栗子。 1:如何用代码判断一个向量里的奇数和偶数的个数?2...

  • R语言流程控制

    都知道R语言是向量式编程,可是有时候确实需要用到循环语句,这里就介绍R语言里面的主要循环——for循环。 与其它语...

  • 生信学习Day5-森森

    生信学习第5天,昨天学习Rstudio基本操作后,今天继续学习R语言的向量、数据框。 向量 1. 标量和向量的区分...

  • Python和R的异同(一)

    注 <- 对应R, = 对应Python R语言基本数据结构是向量,支持向量化操作。Python不支持向量化 R和...

网友评论

    本文标题:R语言编程艺术 第2章 向量(上)

    本文链接:https://www.haomeiwen.com/subject/svlbjqtx.html