R語言的數據結構--矩陣

【圖書推薦】《R語言醫學數據分析實踐》-CSDN博客

《R語言醫學數據分析實踐 李丹 宋立桓 蔡偉祺 清華大學出版社9787302673484》【摘要 書評 試讀】- 京東圖書 (jd.com)

R語言醫學數據分析實踐-R語言的數據結構-CSDN博客

矩陣是一個二維數組,矩陣中的元素都具有相同的類型(數值型、字符型或邏輯型)。矩陣是一種特殊的向量,包含兩個附加的屬性:行數和列數。矩陣中每一行代表一條記錄,而每一列代表一個屬性。在醫學應用中,矩陣廣泛用于存儲和處理醫學數據,如實驗數據、影像數據、生物標記物數據等。矩陣用matrix函數定義,根據保存的行數和列數對應到矩陣的元素,定義的格式如下:

matrix(data  #要創建矩陣的數據,一般為向量nrow  #行數ncol  #列數byrow = TRUE  	#若為TRUE,則按行填充矩陣;若為FALSE,則按列填充矩陣dimnames  		#用于指定行和列的名稱,默認為NULL
)

matrix()函數把矩陣元素以一個向量的形式輸入,用nrow和ncol規定行數和列數。默認情況下,向量元素填入矩陣的默認次序是按列填入。使用參數byrow=TRUE可以轉換成按行填入。dimnames函數的第一個向量為行名,第二個向量為列名。

創建矩陣的R代碼如下:

patient_height <- c(165, 172, 180)  	#創建身高向量
patient_weight <- c(60, 70, 75)     	#創建體重向量
patient_matrix <- matrix(c(patient_height, patient_weight), nrow = 3, ncol = 2, byrow = TRUE, dimnames = list(c("Patient1", "Patient2", "Patient3"),c("Height", "Weight"))) #創建三行二列的矩陣
patient_matrix    #查看創建的矩陣

代碼運行結果如圖2-3所示,成功創建了一個包含3個病人身高和體重數據的矩陣。

?圖2-3

當我們完成矩陣的創建后,如何查看矩陣的屬性呢?可以使用class()函數查看數據結果類型,使用typeof()函數查看數據元素類型。矩陣有一個dim屬性,內容是一個包含兩個元素的向量,分別為矩陣的行數和列數。dim屬性可以使用dim()函數訪問,而查看數據元素個數則使用length()函數。

除了查看矩陣的屬性之外,還可以對矩陣的元素進行修改。訪問矩陣元素有兩種方式:按索引訪問和按名稱訪問。按索引訪問需提供行和列對應的索引,以獲取對應位置元素的值。比如想查看第二列第二行的內容,可以使用“patient_matrix[2,2]”來獲得。此外,還能通過名稱訪問,比如“patient_matrix["Patient2","Weight"]”,這將得到相同的結果。

查看矩陣屬性和修改矩陣元素的R代碼如下:

class(patient_matrix)   	#查看數據結果類型
typeof(patient_matrix)  	#查看數據元素類型
dim(patient_matrix)     		#查看數據維度
length(patient_matrix)  	#查看數據元素個數
patient_matrix[2,2]     		#查看第二列第二行內容
patient_matrix["Patient2","Weight"]
patient_matrix[2,2]<-65  	#修改第二列第二行內容
patient_matrix

代碼運行結果如圖2-4所示。

?

圖2-4

使用colnames()函數可以給矩陣中的每列命名,使用rownames()函數可以給矩陣中的每行命名。給矩陣的行和列命名后,可以用名稱代替數字索引,R代碼如下:

###按數字索引訪問矩陣 ###
mat_a = matrix(11:16, nrow=3, ncol=2, TRUE) #按行創建一個3×2的矩陣mat_a
print(mat_a)
###按名稱訪問矩陣 ###
colnames(mat_a) = c('c1', 'c2')	 		#給mat_a的每一列取名
rownames(mat_a) = c('r1', 'r2', 'r3') 	#給mat_a的每一行取名
print(mat_a)

代碼運行結果如圖2-5所示。

?

圖2-5

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/62556.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/62556.shtml
英文地址,請注明出處:http://en.pswp.cn/web/62556.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

JAVA基礎學習筆記_反射+動態代理

文章目錄 反射獲取class對象的三種方式獲取構造方法獲取成員變量獲取成員方法反射的作用 動態代理 反射 允許對成員變量\成員方法\構造方法的信息進行編程訪問 把類內的信息扒的干干凈凈,獲取解剖 獲取從class字節碼文件中獲取 獲取class對象的三種方式 public static void …

微信小程序一鍵復制功能

wx.setClipboardData(Object object) 設置系統剪貼板的內容。調用成功后&#xff0c;會彈出 toast 提示"內容已復制"&#xff0c;持續 1.5s wx.setClipboardData({data: 你需要復制的內容,success (res) {wx.getClipboardData({success (res) {console.log(res.dat…

【Python網絡爬蟲 常見問題匯總】

目錄 1. 爬取圖片出現403解決辦法&#xff1a;設置請求頭中的Referer字段 2.關于干壞事的問題后續不定期更新 歡迎共同探討學習進步 1. 爬取圖片出現403 問題出自案例9&#xff0c;已解決。 【Python網絡爬蟲筆記】9- 抓取優美圖庫高清壁紙 當在爬取圖庫圖片時遇到 403 錯誤…

Linux: docker: 怎么修改 proc下的文件內容?

文章目錄 參考問題方法 1:在宿主機上修改參數方法 2:啟動容器時掛載 /proc 為可寫方法 3:通過 Kubernetes 調整配置方法 4:構建特權容器參考 https://docs.docker.com/security/for-admins/hardened-desktop/enhanced-container-isolation/features-benefits/#procfs–sys…

分布式 分布式事務 總結

前言 相關系列 《分布式 & 目錄》《分布式 & 分布式事務 & 總結》《分布式 & 分布式事務 & 問題》 分布式事務 所謂分布式事務是指操作范圍籠罩多個不同節點的事務。例如對于訂單節點&庫存節點而言&#xff0c;一次完整的交易需要同時調動兩個節…

STM32+模擬或硬件IIC+SHT20驅動問題:接上拉電阻、BUSY死鎖?

主要問題&#xff1a; 1&#xff0c;使用STM32F103C8T6&#xff0c;模擬IIC&#xff0c;SCL和SDA口配置為推挽輸出上拉&#xff0c;主要是SDA腳&#xff0c;每次都要輸出輸入模式重新配置&#xff0c;雖然也能通信&#xff0c;但不穩定&#xff0c;出錯率大&#xff1b; 2&…

【工業機器視覺】基于深度學習的水表盤讀數識別(3-數據標注與轉換)

【工業機器視覺】基于深度學習的儀表盤識讀&#xff08;2&#xff09;-CSDN博客 數據標注 標注擴展 Labelme 和 LabelImg 都是用于創建機器學習和計算機視覺項目所需標注數據的工具。它們都允許用戶通過圖形界面手動標注圖像&#xff0c;但各自有其特點和適用場景。 Labelme…

靜態路由與交換機配置實驗

1.建立網絡拓撲 添加2臺計算機&#xff0c;標簽名為PC0、PC1&#xff1b;添加2臺二層交換機2960&#xff0c;標簽名為S0、S1&#xff1b;添加2臺路由器2811&#xff0c;標簽名為R0、R1&#xff1b;交換機劃分的VLAN及端口根據如下拓撲圖&#xff0c;使用直通線、DCE串口線連接…

【Spark】Spark Join類型及Join實現方式

Spark Join類型 1. Inner Join (內連接) 示例&#xff1a;val result df1.join(df2, df1("id") df2("id"), "inner")執行邏輯&#xff1a;只返回那些在兩個表中都有匹配的行。 2. Left Join (左外連接) 示例&#xff1a;val result df1.jo…

socket UDP 環路回顯的服務端

基于socket通訊的方式&#xff0c;無論用http或者udp或者自定義的協議&#xff0c;程序結構都是類似的。這個以UDP協議為例簡要說明。 #include <stdio.h> // 標準輸入輸出庫 #include <sys/types.h> // 提供了一些數據類型&#xff0c;如ssize_t #include <sy…

Linux:network:添加ip的時候自動添加一個本地路由

文章目錄 問題問題 最近在看一個路由的問題,順便看內核代碼,發現在添加IP的時候,內核會自動添加一個local route。 net/ipv4/devinet.c inet_rtm_newaddr->__inet_insert_ifa /* Send message first, then call notifier.Notifier will trigger FIB update, so thatlis…

Magnet Player:一款基于Web的磁力鏈媒體播放器

Magnet Player&#xff1a;一款基于Web的磁力鏈媒體播放器 項目地址:https://gitcode.com/gh_mirrors/ma/magnet-player 是一個創新的開源項目&#xff0c;它允許用戶直接在瀏覽器中播放磁力鏈&#xff08;Magnet URI&#xff09;內容&#xff0c;無需下載或安裝任何桌面應用…

php:完整部署Grid++Report到php項目,并實現模板打印

一、下載Grid++Report軟件 路徑:開發者安裝包下載 - 銳浪報表工具 二、 安裝軟件 1、對下載的壓縮包運行內部的exe文件 2、選擇語言 3、 完成安裝引導 下一步即可 4、接收許可協議 點擊“我接受” 5、選擇安裝路徑 “瀏覽”選擇安裝路徑,點擊"安裝" 6、完成…

web安全攻防入門教程

Web安全攻防入門教程 Web安全攻防是指在Web應用程序的開發、部署和運行過程中&#xff0c;保護Web應用免受攻擊和惡意行為的技術與策略。這個領域不僅涉及防御措施的實現&#xff0c;還包括通過滲透測試、漏洞挖掘和模擬攻擊來識別潛在的安全問題。 本教程將帶你入門Web安全攻…

前端node環境安裝:nvm安裝詳細教程(安裝nvm、node、npm、cnpm、yarn及環境變量配置)

需求&#xff1a;在做前端開發的時候&#xff0c;有的時候 這個項目需要 node 14 那個項目需要 node 16&#xff0c;我們也不能卸載 安裝 。這豈不是很麻煩。這個時候 就需要 一個工具 來管理我們的 node 版本和 npm 版本。 下面就分享一個 nvm 工具 用來管理 node 版本。 這個…

Unity在運行狀態下,當物體Mesh網格發生變化時,如何讓MeshCollider碰撞體也隨之實時同步變化?

舊版源代碼地址&#xff1a;https://download.csdn.net/download/qq_41603955/90087225?spm1001.2014.3001.5501 舊版效果展示&#xff1a; 新版加上MeshCollider后的效果&#xff1a; 注意&#xff1a;在Unity中&#xff0c;當你動態地更改物體的Mesh時&#xff0c;通常期望…

OpenCV--特征匹配

OpenCV--特征匹配 代碼和筆記 代碼和筆記 import cv2 import numpy as np""" 特征匹配 """""" 暴力特征匹配&#xff1a;使用第一組&#xff08;第一幅圖&#xff09;中的一個特征描述子&#xff0c;使用一些距離計算與第二組中…

什么是自動化辦公

自動化辦公是指使用技術工具或軟件&#xff0c;通過預設流程或腳本&#xff0c;自動執行日常辦公任務&#xff0c;從而提升效率、減少錯誤、節約時間的辦公模式。它適用于需要重復性、規則明確的工作流程&#xff0c;讓員工將精力集中在更具創造性和戰略性的工作上。 自動化辦公…

常見排序算法總結 (四) - 快速排序與隨機選擇

快速排序 算法思想 每一輪在數組相應的范圍上隨機找一個元素進行劃分&#xff0c;將不大于它的所有元素都放到左邊&#xff0c;將大于它的元素都放到右邊。在左右兩個子數組上不斷地遞歸&#xff0c;直到整個數組上有序。 注意&#xff1a;實現時選擇的時參考荷蘭國旗問題優化…

unraid固態硬盤分區格式—默認1MiB對齊

背景 我的unraid中有三個機械硬盤和兩個固態硬盤&#xff0c;其中兩個固態硬盤組成zfs鏡像的cache&#xff0c;防止其中一個硬盤出問題導致數據丟失。然而&#xff0c;今天突然看到機械硬盤的分區格式為GPT 4k&#xff0c;而固態硬盤是MBR 1MiB。想到GPT更加優秀&#xff0c;并…