編程語言難度排名「r語言安裝詳細步驟」

一,合併向量

>append(x, values, after = length(x))
#從一個向量的指定位置處,插入另一個向量
>append(1:5, 0:1, after = 3)
[1] 1 2 3 0 1 4 5

二,匹配函數

匹配函數(match)返回一個位置向量,表示 x 匹配table的位置。%in% 返回一個邏輯向量

x %in% table  #%in% 返回一個邏輯向量,表示左邊的操作符是否匹配右邊的操作符。

2.1 match()函數的用法

x <- c(3,1,7)
tb <- c(-1:5)
match(x,tb)
# 5  3 NA

#實例
#match()函數可以用於批量修改數據框的列名:
names(df)[match(c('a',"b", "c)","d"),names(df))]<- c('C1','C2','C3','C4')

2.2 操作符 %in%的用法

#操作符 %in% 在底層使用match()函數實現:
#用法  function(x, table) match(x, table, nomatch = 0) > 0
1:10 %in% c(1,3,5,9)
#[1]  TRUE FALSE  TRUE FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE

三,cut函數

cut()函數用於切割x的範圍,每一個範圍是一個分區;cut()函數根據分區的順序對x中的值進行編碼,也就是說,每一個分區從左向右依次對應lables向量中的一個因子,最左邊的分區對應於lables向量的第一個因子,第二個分區對應lables向量中的第二個因子,以此類推。

cut(x, breaks, labels = NULL, include.lowest = FALSE, right = TRUE, dig.lab = 3,ordered_result = FALSE, ...)
 #示例
 vc <- c(1:6)
cut(vc,breaks=c(0,2,5,7),labels = c('low','medium','high'))
#[1] low    low    medium medium medium high  
#Levels: low medium high

四,排名函數

功能:rank()排名函數用於對向量元素進行排名,按照升序的順序對數據進行排序,排名的結果存儲到變量中。

#用法:rank(x, na.last = TRUE, ties.method = c("average", "first", "last", "random", "max", "min"))
#參數注釋
#na.last :控制如何對待NA,如果設置為TRUE,那麼缺失值排在最後一位;如果為FALSE,那麼缺失值排在第一位;如果設置為NA,那麼缺失值被移除;如果設置為keep,那麼排名為NA。
#ties.method :控制如何對待tie,一個tie是指值重複的元素。

r1 <- rank(x1 <- c(3, 1, 4, 15, 92))
#[1] 2 1 3 4 5

五,替換

函數replace()用於把向量中指定位置的元素替換為指定的值(或向量):

replace(x, list, values)

參數注釋:

  • list:整數向量,指定被替換的元素的位置
  • values:替換的值(或向量)
> replace(1:9,c(1,3,7),0)
#[1] 0 2 0 4 5 6 0 8 9

六,重複

功能:rep()函數把輸入的參數重複多次,如果參數是表達式,rep()函數會把表達式的結果重複多次;而replicate()函數是重複調用表達式。

> rep(runif(1),5)
#[1] 0.8721105 0.8721105 0.8721105 0.8721105 0.8721105
> replicate(5,runif(1))
#[1] 0.9426709 0.1280271 0.1926333 0.7091503 0.5404846

七,逆轉

功能:rev()函數用於把一個向量的元素逆轉

> rev(c(1,5,3,7))
#[1] 7 3 5 1

八,排序

功能:sort()函數用於對向量排序,返回有序的向量;order()函數返迴向量元素的序號,能夠用於對data.frame排序

order(..., na.last = TRUE, decreasing = FALSE, method = c("auto", "shell", "radix"))
sort(x, decreasing = FALSE, na.last = NA, ...)
     
df <- data.frame(x=c(6,3,7,5),y=c(5,1,7,3))
df[order(df$y),]
   x y
2 3 1
4 5 3
1 6 5
3 7 7

九,刪除重複值

功能:第一種做法是把返迴向量中的唯一值;第二個方法是返迴向量中重複元素的位置,然後刪除重複元素。

9.1,刪除重複值

#unique() 函數用於移除重複數據,用於向量,數據框或數組的去重
unique(x, incomparables = FALSE)

9.2,檢查重複值

#duplicated()函數用於檢查重複的元素,返回元素類型是邏輯值的向量或數據框:當元素的值為FALSE時,表示該元素不是重複值;當元素的值是TRUE時,表示該元素是前面(位置)的某一個元素的重複值。
#duplicated(x, incomparables = FALSE, ...)
df <- df[!duplicated(df$var),]

十,邏輯TRUE的索引

功能:which()函數,用於從邏輯向量中返回TRUE值在向量中的索引,參數x是一個由邏輯值構成的向量

which(x)
> which(lv <- c(TRUE, FALSE, TRUE, NA, FALSE, FALSE, TRUE))
[1] 1 3 7
> which(exper <- c(1:9)>5)
[1] 6 7 8 9

十一,構造環境

#數據框,使R表達式位於數據框的作用環境中,便於對數據框變量的引用

with(data, expr, ...)
within(data, expr, ...)
  
  with(mtcars, mpg[cyl == 8  &  disp > 350])
#only define one variable
mtcars$mpg[mtcars$cyl == 8  &  mtcars$disp > 350]

#define  multiple variables
aq <- within(airquality, {     # multiple vars can be changed
    lOzone <- log(Ozone)
    Month <- factor(month.abb[Month])
    cTemp <- round((Temp - 32) * 5/9, 1) 
    S.cT <- Solar.R / cTemp  # using the newly created variable
    rm(Day, Temp)
})

十二,Reduce函數

功能:Reduce()函數對一個向量循環執行函數(該函數有兩個參數)

Reduce(f, x, init, right = FALSE, accumulate = FALSE)

參數注釋:

  • f :有兩個參數的函數對象
  • x:向量
  • init :一個標量值,類型和x向量的元素相同;
  • right :邏輯值,當值為FALSE時,從向量的左側開始,依次向右側取出元素傳遞到給函數;當值為TRUE時,從向量的右側開始,依次向左側取出元素,傳遞給函數;
  • accumulate:邏輯值,a logical indicating whether the successive reduce combinations should be accumulated. By default, only the final combination is used.
> Reduce(sum,1:5,10)
[1] 25

十三,條件過濾器

功能:按照條件從向量中選擇元素,當條件為TRUE時,把該元素添加到結果向量中。參數 f 是一個返回邏輯值的函數(該函數必須有一個輸入參數),參數x是一個向量。

Filter(f, x)

> fx <- function(x) x>5;
> Filter(fx,1:10)
[1]  6  7  8  9 10

十四,計算累加

功能:使用cumsum(x)來計算向量元素的累加值,累加的計算過程是迭代的

> cumsum(1:5)
[1]  1  3  6 10 15

十五,計數出現的次數(tabulate)

功能:tabulate()函數的作用是使用bin構造整數向量v,並計算bin中每個整數在v中出現的次數。

tabulate(bin, nbins = max(1, bin, na.rm = TRUE))
> tabulate(bin = c(2,3,3,5))
#[1] 0 1 2 0 1

十六,diff

功能:函數計算向量相鄰元素之間的差異,後者減去前者

d= c(10,1,1,1,1,1,1,2,1,1,1,1,1,1,1,3,10)
diff(d)
[1] -9  0  0  0  0  0  1 -1  0  0  0  0  0  0  2  7

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/273259.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-17 14:05
下一篇 2024-12-17 14:05

相關推薦

發表回復

登錄後才能評論