R語言學習筆記(五):零碎知識點(11-15)


11--which.min(), which.max()和which()

which(x, arr.ind = FALSE, useNames = TRUE)

  • x 是一個向量或者數組,可以是NA,但會省略掉,相當於FALSE。
  • arr.ind = FALSE 當x是數組時,是否返回數組索引(arr.ind = array indices)

which(), which.max(), which.min()返回的是位置

> which(2:10 > 3)
[1] 3 4 5 6 7 8 9
> m <- matrix(1:12, 3, 4)
> div.3 <- m %% 3 == 0
> which(div.3)
[1]  3  6  9 12
> which(div.3, arr.ind = TRUE)
     row col
[1,]   3   1
[2,]   3   2
[3,]   3   3
[4,]   3   4
> which.max(2:4)
[1] 3

12--意外降維(dimension reduction)

提取矩陣中的一行得到向量格式,使用drop參數則可以避免此情況。

> a <- matrix(1:12, ncol = 3)
> b <- a[,1]
> b
[1] 1 2 3 4
> class(b)
[1] "integer"
> c <- a[,1, drop = F]
> c
     [,1]
[1,]    1
[2,]    2
[3,]    3
[4,]    4
> class(c)
[1] "matrix"

13--列表的遞歸

列表是可以遞歸的(recursive),即,列表的組件也可以是列表。

b <- list(u = 5, v = 12)
c <- list(w = 13)
a <- list(b, c)
a
[[1]]
[[1]]$u  #此處的 [[1]] 即為b的名字,因為沒有給b賦予名字,默認為1
[1] 5

[[1]]$v
[1] 12


[[2]]
[[2]]$w   #此處的 [[2]] 同上
[1] 13

14--列表的降維

  • unlist 可以獲取列表的 值,返回一個向量。
  • 拼接函數c()在拼接列表時默認得到的還是列表
  • 有一個可選參數recursive,即是否把所有組件元素提取出來,組合成一個向量
  • recursive 僅對列表有效。
> b <- list(u = 5, v = 12)
> unlist(b)
 u  v 
 5 12 
> c(b)
$u
[1] 5

$v
[1] 12

> c(b,recursive = T)
 u  v 
 5 12 

15--預先設定空向量

在編寫函數時往往需要預先設定一個指定的空向量,這時vector()可以指定它的長度以及類型。

> a <- vector(length = 3, mode = 'character')
> a
[1] "" "" ""
> vector(length = 3, mode = 'list')
[[1]]
NULL

[[2]]
NULL

[[3]]
NULL


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM