R語言數據框中的負索引介紹

以R語言自帶的mtcars數據框為例:

這是原始的mtcars數據:

mtcars數據框

這裡隻列出瞭前面幾行數據。

然後負索引mtcars[,-2:-3],得到的結果

在這裡插入圖片描述

刪除瞭第二列和第三列數據

所以R語言數據框中的負索引是指刪除數據框中對應的列(或者行)

ps:這和Python裡面的規則好像不太一樣,Python裡的負索引好像是指倒數第幾列(或者第幾行),這裡這兩個軟件區別還挺大的~~寫個筆記提醒一下自己~

補充:R語言中的負整數索引

看代碼吧~

> x<-matrix(c(1,2,3,4,5,6,7,8,9),nrow = 3,ncol = 3,byrow = TRUE)
> x
     [,1] [,2] [,3]
[1,]    1    2    3
[2,]    4    5    6
[3,]    7    8    9
> x[-1,]
     [,1] [,2] [,3]
[1,]    4    5    6
[2,]    7    8    9

這在R中稱為負整數索引向量,這種索引向量指定被排除的元素而不是包括進來,因此x[-1,]表示取出矩陣x的除瞭第一行元素外的其他元素。

補充:R語言-基本語法、數據類型及索引

1. 基本語法

print() cat()打印輸出

#單行註釋

if(FALSE){code block}多行註釋

2. 數據類型

class():查看數據類型

2.1 基本數據類型

基本數據類型 示例
邏輯值(logical) 真:TRUE、T,假:FALSE、F
數字(numeric) 123、5
整型(integer) 2L、34L
復數(complex) 3+2i
字符(character) ‘good’

2.2 向量Vector

c()函數創建向量。

註意:必須保證元素類型相同,否則會默認進行類型轉換。

> x <- c(1, 2)
> class(x)
[1] "numeric"
> x <- c('s')
> class(x)
[1] "character"
> x <- c(1, 2, 's')
> class(x)
[1] "character" 

2.3 列表List

列表可以包含許多不同類型的元素,如向量、函數、嵌套列表。

註意:[]與[[]]的區別。[]取出來的仍是一個列表,[[]]取出來的是本身的數據類型。

> list1 <- list(c(2,3), 21, 's', sin)  # 分別包含列表、數字、字符、函數
> class(list1)
[1] "list"
> list1[1] # 取出來的仍是一個列表
[[1]]
[1] 2 3
> list1[[1]] # 取出來的是子列表中的元素
[1] 2 3
> class(list1[1])
[1] "list"
> class(list1[[1]])
[1] "numeric"
> list1[[2]]
[1] 21
> list1[2] + 2
Error in list1[2] + 2 : non-numeric argument to binary operator
> list1[[2]] + 2
[1] 23
> list1[[4]]
function (x)  .Primitive("sin")
> class(list1[[4]])
[1] "function"

2.4 矩陣Matrix

矩陣是二維數據集,它可以使用矩陣函數的向量輸入創建。

byrow參數決定元素存放的順序。

> M <- matrix( c('a','a','b','c','b','a'), nrow = 2, ncol = 3, byrow = TRUE)
> M
     [,1] [,2] [,3]
[1,] "a"  "a"  "b" 
[2,] "c"  "b"  "a" 
> M[,1] # 取出第一列數據
[1] "a" "c"
> M[1,] # 取出第一行數據
[1] "a" "a" "b"
> M[2,1] # 取出單個元素
[1] "c"

2.5 數組Array

利用數組可以創建任意維度的數據。

> array1 <- array(c('green','yellow'), dim=c(3,3,2))
> array1
, , 1
     [,1]     [,2]     [,3]    
[1,] "green"  "yellow" "green" 
[2,] "yellow" "green"  "yellow"
[3,] "green"  "yellow" "green" 
, , 2
     [,1]     [,2]     [,3]    
[1,] "yellow" "green"  "yellow"
[2,] "green"  "yellow" "green" 
[3,] "yellow" "green"  "yellow"

2.6 因子Factor

因子是使用向量創建的對象。它將向量與向量中元素的不同值一起存儲為標簽。 標簽是字符類型。 它們在統計建模中非常有用。

使用factor()函數創建因子。nlevels函數給出級別計數。

> apple_colors <- c('green','green','yellow','red','red','red','green')
> factor_apple <- factor(apple_colors)
> factor_apple
[1] green  green  yellow red    red    red    green 
Levels: green red yellow
> nlevels(factor_apple)
[1] 3

2.7 數據框Data Frame

表格數據對象。每列可以包含不同的數據類型。 第一列可以是數字,而第二列可以是字符,第三列可以是邏輯的。 它是等長度的向量的列表。

使用data.frame()函數創建數據框。

# 創建數據框,表格對象
> BMI <- data.frame(
     gender = c("Male", "Male","Female"), 
     height = c(152, 171.5, 165), 
     weight = c(81,93, 78),
     Age = c(42,38,26)
 )
 
> BMI
  gender height weight Age
1   Male  152.0     81  42
2   Male  171.5     93  38
3 Female  165.0     78  26
# 獲取第二列
> BMI[2]
  height
1  152.0
2  171.5
3  165.0
# 獲取第一行
> BMI[1,]
  gender height weight Age
1   Male    152     81  42
# 獲取第一列數據,類型為DataFrame
> BMI[1]
  gender
1   Male
2   Male
3 Female
> class(BMI[1])
[1] "data.frame"
# 獲取第一列,並將其轉換為factor類型
> BMI[,1]
[1] Male   Male   Female
Levels: Female Male
# 獲取第一個元素,轉換為factor類型
> BMI[1,1]
[1] Male
Levels: Female Male
# 獲取第二列,不改變數據類型
> BMI[2]
  height
1  152.0
2  171.5
3  165.0
# 獲取第二列,改變數據類型
> BMI[,2]
[1] 152.0 171.5 165.0
# 根據列的名稱獲取factor類型數據
data_frame$col_name

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。