iT邦幫忙

2024 iThome 鐵人賽

DAY 13
0
自我挑戰組

R語言初學紀錄系列 第 13

DAY13-R語言 資料處理part.2

  • 分享至 

  • xImage
  •  

前言:第二篇~~這篇會學習子集以及排序!如果內容有哪些錯誤的地方,請多多包涵~


正文開始-->

【子集SUBSET】
首先要了解一下子集是什麼,從數學上來講,子集也稱做部分集合,為某集合中部分元素的集合。取出子集的方法則有以下幾種。

  1. 從一維資料(向量)中取出元素。
  • [ ]:取出單一或多個元素。
  • head()、tail():分別可快速取得向量的頭或尾的元素。

使用範例:
https://ithelp.ithome.com.tw/upload/images/20240916/20169228VjoIJWmN4x.png

  1. 從二維資料(資料框)中取出元素。
  • dataFrame[row index,column index]

  • dataFrame[c(T,F,T),c(T,F,T)]

  • dataFrame[row name,column name]
    使用範例:
    https://ithelp.ithome.com.tw/upload/images/20240916/20169228ZwN7QxMfgT.png

    • 使用索引位置:透過行列的索引值來選擇特定元素。
    • 使用布林變數:使用布林向數(TRUE/FALSE)來選擇資料框中的特定行和列。c(TRUE, FALSE, TRUE) 代表選擇第 1 行和第 3 行。c(TRUE, FALSE, TRUE) 代表選擇第 1 列(Name)和第 3 列(Salary)。
    • 使用欄位名稱和行名稱:直接透過欄位名稱和行名稱(如果有)來選擇特定的值或資料片段。df_named["Row2", "Salary"] 會選取資料框中第 2 行(Row2)的 Salary 列。
  • $」符號

  • subset()、grepl()

  • head()、tail()
    使用範例:
    https://ithelp.ithome.com.tw/upload/images/20240916/20169228walTf2M2BP.png

    • $」符號:篩選特定欄位的行。
    • subset()函式:根據條件篩選行。
    • grepl()函式:根據字串篩選行。
    • head()函式:取得資料框的前幾行。
    • tail()函式:取得資料框的後幾行。

【排序SORT】

  1. sort():對向量從小排至大。
    使用範例:
    https://ithelp.ithome.com.tw/upload/images/20240916/20169228MJzvAruw7s.png

  2. order():用來返回一個數字向量或因子的排序索引,而不是直接對原數據進行排序。它會返回一個向量,其中每個值表示原始向量中數值應該按升序排列時的索引。也可以對向量進行排序。

  • 向量應用
    使用範例:
    https://ithelp.ithome.com.tw/upload/images/20240916/201692285wRv8cMHUU.png

  • 資料框應用
    使用範例:
    https://ithelp.ithome.com.tw/upload/images/20240916/20169228mYyitaF9c3.png

    • 單列排序:order(df$Age),返回按照年齡排序的索引。df[order(df$Age), ],根據 order() 返回的索引來對整個資料框排序。
    • 多列排序:order(df$Age, df$Name) ,首先按照 Age 進行升序排序,當年齡相同時,再按照 Name 進行排序。
    • 降序排序:使用「-」號來反轉順序(僅適用於數字列)。
  1. rank():回傳向量中每個數值的排名大小。
    使用範例:
    https://ithelp.ithome.com.tw/upload/images/20240916/20169228X70J057oWs.png

參考:

  1. https://yijutseng.github.io/DataScienceRBook/manipulation.html#subset
  2. https://hackmd.io/@mutolisp/H1O00yGjZ/https%3A%2F%2Fhackmd.io%2Fs%2Fry1iFZ4bm
  3. https://www.cnblogs.com/liujiaxin2018/p/13735781.html

上一篇
DAY12-R語言 資料處理part.1
下一篇
DAY14-R語言 資料處理part.3
系列文
R語言初學紀錄22
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言