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 <- 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)
}
相關文章
- Affinity Designer:向量藝術之舞,設計無限可能
- Battleship程式設計語言與技術BAT程式設計
- Python函數語言程式設計術語大全Python函數程式設計
- Python語言程式設計 (第11期) 測驗8: 程式設計方法學Python程式設計
- 《R語言入門與資料分析》——向量索引R語言索引
- 高階語言程式設計第2次作業程式設計
- 高階程式設計語言第2次作業程式設計
- 高階程式語言設計第5次作業
- JavaScript DOM 程式設計藝術(第2版) 讀書筆記JavaScript程式設計筆記
- ‘程式語言‘ ’程式設計工具’程式設計
- 程式語言設計,程式設計哲學程式設計
- Redux中的程式設計藝術Redux程式設計
- Michael Feathers:程式設計的藝術程式設計
- Java併發程式設計藝術Java程式設計
- 跨語言程式設計的探索 | 龍蜥技術程式設計
- Java技術分享之函數語言程式設計!Java函數程式設計
- Java技術分享之函數語言程式設計Java函數程式設計
- 推薦JS入門書:JavaScript DOM程式設計藝術(第2版)JSJavaScript程式設計
- r語言R語言
- js函數語言程式設計術語總結 - 持續更新JS函數程式設計
- 禪與JavaScript程式設計藝術,ZenandTheArtofJavaScriptProgrammingJavaScript程式設計NaN
- Unix哲學(Unix程式設計藝術)程式設計
- c語言程式設計題C語言程式設計
- 函數語言程式設計函數程式設計
- JAVA語言程式設計思想Java程式設計
- 《Java語言程式設計(基礎篇)(原書第10版)》第2~4章部分程式設計練習題程式碼Java程式設計
- 最多金的程式語言Top10:Python第3,R第10,你猜第1是誰?Python
- 【R語言入門】R語言環境搭建R語言
- Scala 函數語言程式設計(一) 什麼是函數語言程式設計?函數程式設計
- 學會JavaScript函數語言程式設計(第3部分)JavaScript函數程式設計
- 學會JavaScript函數語言程式設計(第2部分)JavaScript函數程式設計
- 哈嘍C!蘇小紅-C語言程式設計(第3版)程式碼C語言程式設計
- 函數語言程式設計瞭解一下(上)函數程式設計
- 程式設計,不止有程式碼,還有藝術程式設計
- R語言經典統計分析R語言
- 函數語言程式設計-鏈式程式設計RAC函數程式設計
- .NET併發程式設計-函數語言程式設計程式設計函數
- JavaScript函數語言程式設計之為什麼要函數語言程式設計(非嚴謹技術層面的扯淡)JavaScript函數程式設計