1. 程式人生 > >R統計筆記(三):分組統計的幾種方法

R統計筆記(三):分組統計的幾種方法

1. 使用tapply函式

#   INDEX相當於groupBy
tapply(salarys$SALARY, INDEX=salarys$SEX, FUN=sum)

如果出現引數的長度不一致的錯誤,如下:

Error in tapply(salarys$SALARY, INDEX = salarys$SEX, FUN = max) : 
  引數的長度必需相同

請仔細檢查salarysSALARYsalarysSEX的長度是否相等,尤其是檢查INDEX的型別,如果是list型別,請務必轉換為向量:

# 對資料進行處理,返回LIST
salarys$SEX <- lapply(salarys$SEX
, function(x) switch(x, FEMALE='女', MALE='男')) # 返回向量 salarys$SEX <- c(salarys$SEX, recursive = TRUE)

2. 使用by函式

使用by函式可以達到同樣的效果,唯一需要注意的是,引用的資料必須全是資料列,例如在本例中,資料最多也只能是salarys[c(‘SALARY’, ‘ID’)]。

by(salarys[c('SALARY')], INDICES = list(salarys$SEX), FUN=max)

3. 使用aggregate函式

aggregate(x=salarys[c('SALARY'
)], by = list(salarys$SEX, salarys$ID), FUN=max)

聚合函式與group by更相似,例如以上語句就表示按SEX、ID進行分組,結果如下:

  Group.1 Group.2  SALARY
11  30000
22    200
33   1200
44   3500

從以上的資料可以看出,分組的唯一性由(SEX,ID)決定,所以跟SQL一模一樣。

相關推薦

R統計筆記分組統計方法

1. 使用tapply函式 # INDEX相當於groupBy tapply(salarys$SALARY, INDEX=salarys$SEX, FUN=sum) 如果出現引數的長度不一致的錯誤,如下: Error in tapply(sal

C#可擴展編程之MEF學習筆記導出類的方法和屬性

學習 說了 如何 mod ati dem ont num imp 前面說完了導入和導出的幾種方法,如果大家細心的話會註意到前面我們導出的都是類,那麽方法和屬性能不能導出呢???答案是肯定的,下面就來說下MEF是如何導出方法和屬性的。   還是前面的代碼,第二篇中已經提供了下

Python筆記構建發布模塊

窗口 auth 復制 strong script 安裝目錄 新建 site package (一) 準備工作 1. 新建一個模塊(名稱自定義),存放要發布的模塊代碼。 2. 新建一個setup.py的模塊(存放模塊的元數據,描述相關信息)。 3.

Maven實戰讀書筆記Maven依賴

aging com cti 無效 type -c maven 傳遞依賴 歸類 3.1 依賴的配置 一個依賴聲明可以包含下面元素: <dependencies> <dependency> <groupId></

Java學習筆記面向對象

default 直接 imp 尋找 bst 構造 時也 fin 不同 1.繼承 語法 class 父類{} class 子類 extends 父類{} 只能多層繼承,不能多重繼承,子類不能直接訪問父類中的私有成員,可通過getter和setter方法獲得 子類對象new實

《編碼-隱匿在計算機背後的語言》 —— 讀書筆記數字

之間 代碼 印度 隱匿 幾何 十個 binary 系統 進行 7. 我們的十個數字 1) 數字是一種最抽象的編碼。早期的數字系統:羅馬數字(乘除很復雜)——古希臘數字系統(古希臘人以幾何學聞名)——印度-阿拉伯數字系統(如今的阿拉伯數字) 2) 阿拉伯數字

hadoop學習筆記hdfs體系結構和讀寫流程

sim 百萬 服務器 發表 繼續 什麽 lose 基於 一次 原文:https://www.cnblogs.com/codeOfLife/p/5375120.html 目錄 HDFS 是做什麽的 HDFS 從何而來 為什麽選擇 HDFS 存儲數據 HDFS

javaweb學習筆記Servlet

Servlet的詳細解讀目錄 Servlet詳解 1.Servlet概述與執行過程 2.Servlet對映路徑 3.Servlet 的生命週期 3.1生命週期方法 3.2虛擬碼演示生命週期

學習筆記使用K近鄰演算法檢測Rootkit

      Rootkit是一種特殊的惡意軟體,它的功能是在安裝目標上隱藏自身以及指定的檔案,程序和網路連結等資訊。 1.資料蒐集        KDD 99 TCP連線內容特徵包括hot ,num_faild_login

kubernetes學習筆記 阿里雲遊戲業務實戰

本人一直做業務開發,不曾瞭解過運維知識,因為要對一個專案的技術部分負責,開發業務的同時還需要思考系統層面的事情,團隊人數又少,不得不採用k8s這種能達到事半功倍效果的工具。本文是在阿里雲kubernetes部署遊戲業務的實戰筆記,不涉及k8s原理等深層知識。我學習k8s的時間也比較短,如有理解錯誤的地方,還望

《聯盟》讀書筆記如何協調員工與公司的目標和價值觀

前面已經介紹了通過誠實對話使員工與公司建立信任,且介紹了針對不同型別員工的任期制。但是很多情況下,員工與公司的目標和價值觀很難保持一致,並且現在公司不可能指望企業目標成為員工的唯一目標,那麼如何協調員工與公司的目標和價值觀?公司與員工的目標與價值觀存在共性才有可協調空間,一些明顯的共性會自然

《機器學習實戰》筆記樸素貝葉斯

4.1 基於貝葉斯決策理論的分類方法 樸素貝葉斯是貝葉斯決策理論的一部分,貝葉斯決策理論的的核心思想,即選擇具有最高概率的決策。若p1(x,y)和p2(x,y)分別代表資料點(x,y)屬於類別1,2的概率,則判斷新資料點(x,y)屬於哪一類別的規則是: 4.3 使用條件概率來分類

image caption筆記《Show, Attend and Tell_Neural Image Caption》

一、 基本思想       文章在NIC的基礎上加入了attention機制   二、模型結構 對LSTM部分做出的改動,其餘與NIC相同。           &nbs

使用PrefView監測.NET程式效能分組

在上一篇部落格中,我們通過Perfview幫助檔案中自帶的程式碼來簡單使用了Perfview,瞭解了基本操作。現在來看看Perfview中的分組操作(Grouping)。分組功能都旨將記錄到的各種函式呼叫堆疊以指定的規則進行分組,幫助你組織和找到更關心的資料。 為什麼需要分組  在實際使用中,P

Scala學習筆記==,eq與equals的區別

== Scala中==與java中不同,它是比較值是否相等的,無論比較物件是否是相同型別 List(1, 2, 3) == List(1, 2, 3) //true 1==1.0//true equals 同類型 與==作用相同,都是比較值是否相同 不同型別 返回false,如 1.equal

機器學習筆記線性迴歸大解剖原理部分

進入機器學習,線性迴歸自然就是一道開胃菜。雖說簡單,但對於入門來說還是有些難度的。程式碼部分見下一篇,程式碼對於程式設計師還是能能夠幫助理解那些公式的。 (本文用的一些課件來自唐宇迪的機器學習,大家可以取網易雲課堂看他的視訊,很棒) 1.線性迴歸的一些要點 先說

機器學習筆記線性迴歸大解剖程式碼部分

這裡,讓我手把手教你如何用邏輯迴歸分析資料 根據學生分數預測是否錄取: #必備3個庫 import numpy as np import pandas as pd import matplotlib.pyplot as plt 讓我們讀入資料: import

數字影象處理筆記使用OpenCV檢測影象特徵

1 - 引言 在數字影象處理中還提供了許多檢測影象簡單特徵的方法,例如邊緣檢測、輪廓檢測、直線檢測、圓檢測等。讓我們用OpenCV實現以下這些演算法吧 2 - Canny邊緣檢測 OpenCV提供了一個非常方便的Canny函式(以演算法的發明者命名) import cv2 i

Numpy學習筆記建立矩陣及運算

矩陣的變換 #矩陣的形狀變換 改變矩陣的形狀 print(np.arange(15)) a=np.arange(15).reshape(3,5) a a.shape a.ndim#矩陣的維度 a.dtype.name a.size 運算結果: [ 0 1

Numpy學習筆記不同的複製之間的對比

由於python語言自身的特性,通過賦值的方式, 複製一個變數,其只是將不同的變數名同時指向了一個儲存地址,當兩個變數中的任意一個變數改變內容的時候,所有指向這個內容的變數都將會發生變化。因此如何能像c語言中那樣實現變數的任意改變,並不影響其他變數,是現在要實現