1. 程式人生 > >R: 矩陣運算及常用函式 II

R: 矩陣運算及常用函式 II

aggregate也是跟SAC有關係的一個函式(stats包中):先將物件分解為不同的組別(回憶一下split函式),然後分個處理,最後合併顯示。 具體地說,aggregate()函式將資料集(依據指定方法)拆分成不同子集,分別計算各自的統計資料,並(組合)返回計算結果。 此函式一般對三種物件做處理:data.frame, formula 和 ts (即時間序列). 參考EXCEL的話,pivot table可以實現同樣的效果 -+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+-
1. for class "data.frame":       aggregate(x, by, FUN, ..., simplify = TRUE)      引數
  • by: 分組依據
    • 必須是一組list格式的資料,list中的每個元素都要跟data frame中的observation數量相當;
    • 每個元素可以是外部資料,也可以是x中自身的資料;
    • 其中每個elements都會被轉換成factors的格式;
    • 可在引數中直接對這組資料進行命名: by = list(Name1 = data serie1, Name2 = data serie2, ...)
  • FUN: 統計值的計算方法。
  • simplify: 如果為TRUE,返回向量或者矩陣(如果統計結果長度一致),否則返回list。
     example 1.1: 呼叫R資料庫: state.x77; state.region,以state.region為分組規則計算各組的均值 > aggregate(state.x77, list(Region = state.region), mean)
      example 1.2: 呼叫R資料庫: state.x77; state.region,以state.region和變數Frost為分組規則計算各組的均值
> aggregate(state.x77, +           list(Region = state.region,
+                Cold = state.x77[,"Frost"] > 130),
+                mean)

--------------------------------------------------------------------------------- 2. for class "formula":       aggregate(formula, data, FUN, ..., subset, na.action = na.omit)      引數
  • formula & data: 資料集及以此資料集構建的方程。
    • formula的形式可以是one ~ one, one ~ many, many ~ one, 以及 many ~ many
    • formula的形式也可以是 .~one, .~many, one~. 和 many~.
    • formula右側為分組規則,左側為將要用FUN來計算的資料
  • subset: 非必須變數,可用於指定需要使用的data的子集。
  • na.action: 如何處理缺失值,預設為忽略NA。如果不選擇na.omit,則需指定函式去處理NA。
  • 經常與xtabs()函式結合使用,其將aggregate的結果變成contingency table
     example 2.1: one~one
> aggregate(weight ~ feed, data = chickwts, mean)

     example 2.2: one ~ many > aggregate(breaks ~ wool + tension, data = warpbreaks, mean)
     example 2.3: many ~ one
aggregate(cbind(Ozone, Temp) ~ Month, data = airquality, mean)

     example 2.4: many ~ many
> aggregate(cbind(ncases, ncontrols) ~ alcgp + tobgp, data = esoph, sum)

example 2.5: one ~ . and xtabs()
> ag <- aggregate(len ~ ., data = ToothGrowth, mean) > xtabs(len ~ ., data = ag)
--------------------------------------------------------------------------------- 3. for class "ts" (以下公式已經做了簡化處理):  
aggregate(x, nfrequency = 1, FUN = sum, ...)
     引數
  • nfrequency: (輸出結果中)每個單位時間的observation的數量,必須能夠整除x的observation的總數
example 3.1: 計算美國總統每年的平均支援率(以及weighted的支援率)。可以自己嘗試去比較nfrequency變化後輸出結果的變化。
     > aggregate(presidents, nfrequency = 1, FUN = mean)
> aggregate(presidents, nfrequency = 1, +           FUN = weighted.mean, w = c(1, 1, 0.5, 1))
-+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+- aggregate的功能,也可以通過split+*apply函式實現。以example 1.1為例:
> state <- as.data.frame(state.x77)   # state.x77 is a matrice > gr.state <- split(state, state.region) > t(sapply(gr.state, colMeans))

-+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+- aggregate函式的處理方法就是以某種規則將資料分組以後,對各組同時進行相同的統計計算。如果以上無法理解,不妨試著使用一下Excel中的PivotTable功能,類比一下就能弄懂此處aggregate的計算和輸出的邏輯。

相關推薦

R: 矩陣運算常用函式 II

aggregate也是跟SAC有關係的一個函式(stats包中):先將物件分解為不同的組別(回憶一下split函式),然後分個處理,最後合併顯示。 具體地說,aggregate()函式將資料集(依據指定方法)拆分成不同子集,分別計算各自的統計資料,並(組合)返回計算結果。

R: 矩陣運算常用函式 III

在”矩陣運算及常用函式I“裡已經提到過,apply系列函式“主要用於某維度上某函式/方法的批量應用”,可以避免“控制流迴圈帶來的高錯誤率以及漫長的響應時間”。 為了比較響應時間,我們可以先做一個簡單的測試:為一列資料做一一系列冪的變形,依據指數的sequence,生成一系

R: 矩陣運算常用函式 V

當input擴大到三維時,我們有七種方法去分解。可以按面分解,此時只需要明確是哪一面即可,如.margins = 1;可以按線分解,即按三個維度上任意兩個維度的交界線分解,如.margins = c(1,2);也可以逐個單元進行分解,即以三個維度的交界點來進行分解,.margins = 1:3。

R: 矩陣運算常用函式 I

[[1]] [1]  0.56385004 -0.60344818 -0.81361688  0.35225496  0.02912354 -0.95710764 [7]  1.25629941  0.14222301 -1.03598746 -0.12698964  0.85261162 [[2]] [1]

Cris 的 Python 資料分析筆記 03:NumPy 矩陣運算常用函式(重點)

03. 矩陣運算和常用函式(重點) 文章目錄 03. 矩陣運算和常用函式(重點) 1. numpy 矩陣判斷和計算 1.1 與運算 1.2 或運算 1.3 或運算作為矩陣索引賦值

數字訊號處理專題(2)——利用FPGA進行基本運算特殊函式定點運算

一、前言   FPGA以擅長高速並行資料處理而聞名,從有線/無線通訊到影象處理中各種DSP演算法,再到現今火爆的AI應用,都離不開卷積、濾波、變換等基本的數學運算。但由於FPGA的硬體結構和開發特性使得其對很多演算法不友好,之前本人零散地總結和轉載了些基本的數學運算在FPGA中的實現方式,今天做一個系統的總

SQL語法常用函式

1. INSERT 全列或指定列插入值 INSERT INTO 表名稱 VALUES (值1, 值2,....) INSERT INTO 表名稱 (列1, 列2,...) VALUES (值1, 值2,....) 2. DISTINCT 僅選取唯一不同的值,我們需

MySQL中的聚合函式常用函式

#----------------------聚合函式(mysql中的內建函式)-------------------- # 在mysql中函式使用select關鍵字呼叫: select 函式名(欄位) 【from 表名】 # 找出最大值:max(欄位名) # 找出use

C++ 連結串列棧常用函式實現

#include<iostream> using namespace std; typedef struct Node { int data; struct Node* next; }Node; typedef struct Stack { Node* to

python的numpy庫中的矩陣陣列的常用函式

一、基本運算 ndarray可以進行+,-,*,/,//, % 對形狀不相似的陣列也可以進行運算操作的 例: 二、ndarray陣列的運算方法 ndarray.sum([axis,dtype,out,keepdims]) 返回給定軸axis上的

R語言中的常用函式

語言的數學運算和一些簡單的函式整理如下:向量可以進行那些常規的算術運算,不同長度的向量可以相加,這種情況下最短的向量將被迴圈使用。改變編譯環境的語言(英語)Sys.setenv(LANGUAGE="en")> x <- 1:4> a <- 10> x * a[1] 10 20 3

Python學習筆記 —— 字串常用函式

在Python中沒有單字元型別,所以單個字元也是作為一個字串來使用的 Python字串要求掌握點 引號、雙引號、三引號區別點及使用 轉義字元 字串運算子 字串格式化

Oracle之單表查詢常用函式

1.語法:   select 欄位列表   from 表名   [where 查詢條件]   [group by 分組]   [having 分組條件]   [order by 排序] select * 代表查詢所有的欄位 select

ffmpeg八大模組常用函式介紹

八大庫 avcodec:編解碼()最重要的庫 avformat:封裝格式處理 avfilter:濾鏡特效處理 avdevice:各種裝置的輸入輸出 avutil:工具庫(大部分哭都需要這個庫的支援)

minigui常用介面美化方法,常用函式使用

1.獲得子窗體的文字內容 char buff[100]; HWND parent = GetParent(hwnd);   //通過子控制元件控制代碼獲得父窗體控制代碼 SendDlgItemMessage(parent,IDC_STRING,MSG_GETTEXT,99,

Numpy常用函式矩陣運算

1.Numpy的資料結構與一維陣列 ①Numpy的資料結構是ndarray結構 ②對於構造的一維陣列: ve = numpy.array([1, 2, 3, 4]) print(ve.shape)

Python 集合的定義以及常用運算函數

合取 pan not 必須 rem 沒有 sca 函數 blog 定義(集合內可以有多個元素,但是每個元素都必須是不可變類型,即可hash類型,集合內的元素唯一,集合是無序的): pythons=[‘a‘,‘b‘,‘c‘,‘d‘,‘e‘,‘f‘] s1=set(‘hell

矩陣矩陣運算

http post 右下角 次方 -c 交換 src 元素 行數 矩陣:一個m×n的矩陣就是m×n個數排成m行n列的一個數陣。由於它把許多數據緊湊的集中到了一起,所以有時候可以簡便地表示一些復雜的模型。在數學中,一個矩陣說穿了就是一個二維數組。單位矩陣:從左上角到右下角的對

lambda 、 map 、filter 、reduce reversed 常用函式

lambda 匿名函式 什麼是lambda? lambda 操作符(或 lambda 函式)通常用來建立小巧的,一次性的匿名函式物件。它的基本語法如下: lambda arguments : expression lambda 操作符可以有任意數量的引數,但是它只能有一個表示式,且不能包含任

Oracle中時間日期格式轉換常用日期函式

我的第一篇部落格,記錄學習,分享生活。 Oracle時間日期格式轉換: 主要有兩種格式,一種為日期格式date,一種為字元格式char。 查詢當前日期: select sysdate from dual; 將日期轉化為字元格式,可以對日期進行一些操作 --顯示所有僱員的姓名和加