
先回憶一下之前用到的例子。
將其輸入R語言中:
age <- c(25, 34, 59, 60, 20) #患者年齡
type <- c(1, 2, 2, 2, 1) #糖尿病類型
status <- c("poor", "improved", "excellent", "poor", "excellent") #病情
comorbidity<- c(TRUE, FALSE, FALSE, TRUE, FALSE) #出現(xiàn)并發(fā)癥
mydata <- data.frame(age, type, status, comorbidity) #將數(shù)據(jù)框命名為mydata
查看mydata:
mydata
## age type status comorbidity
## 1 25 1 poor TRUE
## 2 34 2 improved FALSE
## 3 59 2 excellent FALSE
## 4 60 2 poor TRUE
## 5 20 1 excellent FALSE
接下來我們就以mydata為例,介紹一下如何對數(shù)據(jù)框進行簡單的操作。
了解一個數(shù)據(jù)框
多重線性回歸,一般是指有多個自變量X,只有一個因變量Y。前面我們主要是以簡單線性回歸為例在介紹,兩者的差距主要在于自變量X的數(shù)量,在只有一個X時,就稱簡單線性回歸。
面對數(shù)據(jù),第一步就是要了解它有多少條記錄(或多少個case/ observation ),有多少個變量(variable)、分別是哪些。
## 獲取數(shù)據(jù)框的維度(幾行、幾列)
dim(mydata)
[1] 5 4
## 查看數(shù)據(jù)框中的所有變量名(列名)
names(mydata)
[1] "age" "type" "status" "comorbidity"
## 查看數(shù)據(jù)框的整體結構(維度、變量名、數(shù)據(jù)類型、數(shù)據(jù)內容)
str(mydata)
'data.frame': 5 obs. of 4 variables:
$ age : num 25 34 59 60 20
$ type : num 1 2 2 2 1
$ status : Factor w/ 3 levels "excellent","improved",..: 3 2 1 3 1
$ comorbidity: logi TRUE FALSE FALSE TRUE FALSE
如何提取數(shù)據(jù)框中的行和列
多重線性回歸,一般是指有多個自變量X,只有一個因變量Y。前面我們主要是以簡單線性回歸為例在介紹,兩者的差距主要在于自變量X的數(shù)量,在只有一個X時,就稱簡單線性回歸。
2種方法:
1. 數(shù)據(jù)框后加[ , ]。逗號前是行,逗號后是列。如果沒有指定是哪一行或哪一列,默認為所有行/列。
## 提取第一行
mydata[1,]
age type status comorbidity
1 25 1 poor TRUE
## 提取第一列
mydata[,1]
[1] 25 34 59 60 2
## 提取某幾行或某幾列
## 提取1~3行
mydata[1:3,]
age type status comorbidity
1 25 1 poor TRUE
2 34 2 improved FALSE
3 59 2 excellent FALSE
## 提取第1和第5行的1、2、4列
mydata[c(1,5),c(1,2,4)]
age type comorbidity
1 25 1 TRUE
5 20 1 FALSE
## 變量很多時,用列名來提取更方便
mydata[c(1,5),c('age','type','comorbidity')]
age type comorbidity
1 25 1 TRUE
5 20 1 FALSE
2. 另一種提取列的方法是,在數(shù)據(jù)框后加 $,然后再加要提取的列名。
## 提取age這一列
mydata$age
[1] 25 34 59 60 20
獲取滿足特定條件的數(shù)據(jù)
多重線性回歸,一般是指有多個自變量X,只有一個因變量Y。前面我們主要是以簡單線性回歸為例在介紹,兩者的差距主要在于自變量X的數(shù)量,在只有一個X時,就稱簡單線性回歸。
1.提取滿足某一個條件的數(shù)據(jù)。
例如,在病情status這個變量中,有poor, improved 和 excellent這三類,現(xiàn)在想獲取病情最穩(wěn)定、恢復最好的患者信息。也就是說,我們希望獲得status為excellent的病例,即選擇滿足mydata$status=='excellent'的行,以及被選中的行的每一列。
mydata[mydata$status=='excellent',]
age type status comorbidity
3 59 2 excellent FALSE
5 20 1 excellent FALSE
此外,還可進一步提取,例如,想獲得病情status為excellent的患者中,并發(fā)癥comorbidity的情況。換句話說,就是,想提取comorbidity的信息,但這些信息必須是病情最穩(wěn)定的幾位患者的。
## 具體操作如下:先提取comorbidity,再設置status的條件
輸入語句:mydata$comorbidity[mydata$status=='excellent']
[1] FALSE FALSE
2.提取滿足多個條件的數(shù)據(jù)。
例如,想提取年齡age大于等于20歲,且小于35歲的病例。在R中,用&這個符號表達『并且』。用一個小豎杠 | 表達『或者』。
mydata[mydata$age>=20 & mydata$age<35,]
age type status comorbidity
1 25 1 poor TRUE
2 34 2 improved FALSE
5 20 1 excellent FALSE
3.subset()函數(shù),既可用來選擇行,也可選擇列,當然也可以用來提取滿足特定條件的內容。
# 選擇行/滿足特定條件的行
subset(mydata, mydata$age>=20 & mydata$age<35)
age type status comorbidity
1 25 1 poor TRUE
2 34 2 improved FALSE
5 20 1 excellent FALSE
# 選擇列
subset(mydata, select = c('age','status'))
age status
1 25 poor
2 34 improved
3 59 excellent
4 60 poor
5 20 excellent
有缺失數(shù)據(jù)怎么辦
多重線性回歸,一般是指有多個自變量X,只有一個因變量Y。前面我們主要是以簡單線性回歸為例在介紹,兩者的差距主要在于自變量X的數(shù)量,在只有一個X時,就稱簡單線性回歸。
由于原來的數(shù)據(jù)框中沒有缺失數(shù)據(jù),這里我們來構造一個新的記錄(observation),讓這個記錄中全部都是缺失值。
mydata[6,] <- NA
mydata
age type status comorbidity
1 25 1 poor TRUE
2 34 2 improved FALSE
3 59 2 excellent FALSE
4 60 2 poor TRUE
5 20 1 excellent FALSE
6 <NA> <NA> <NA> <NA>
1. 只保留無缺失的observations。如果希望將無缺失版本的數(shù)據(jù)框保存起來,要記得把na.omit(mydata)的結果賦值給新的對象。
mydata_no_NA <- na.omit(mydata)
mydata_no_NA
age type status comorbidity
1 25 1 poor TRUE
2 34 2 improved FALSE
3 59 2 excellent FALSE
4 60 2 poor TRUE
5 20 1 excellent FALSE
2. 查看哪個數(shù)據(jù)為缺失值。需要用到2個函數(shù),這里提醒大家,如果R的語句太復雜,那么可以先從最中心的部分讀起,一層括號一層括號地向外擴展。
例如,下面的語句,可以先看最中間的is.na(mydata$age),意思是對age這列中的每個數(shù)據(jù)進行一次檢驗,返回『是否為缺失值』的邏輯型結果,即TRUE 或者 FALSE。再看which()這個函數(shù),它返回的是前面這一串TRUE和FALSE中,出現(xiàn)TRUE的順序號。
從下面的結果我們可以看到,只有第6個數(shù)據(jù)是TRUE。
which(is.na(mydata$age))
[1] 6
is.na(mydata$age)
[1] FALSE FALSE FALSE FALSE FALSE TRUE
以上就是對數(shù)據(jù)框的一些簡單操作,但是在數(shù)據(jù)處理中非常實用。下一講我們繼續(xù)介紹更多數(shù)據(jù)處理的內容。
數(shù)據(jù)分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
LSTM 模型輸入長度選擇技巧:提升序列建模效能的關鍵? 在循環(huán)神經(jīng)網(wǎng)絡(RNN)家族中,長短期記憶網(wǎng)絡(LSTM)憑借其解決長序列 ...
2025-07-11CDA 數(shù)據(jù)分析師報考條件詳解與準備指南? ? 在數(shù)據(jù)驅動決策的時代浪潮下,CDA 數(shù)據(jù)分析師認證愈發(fā)受到矚目,成為眾多有志投身數(shù) ...
2025-07-11數(shù)據(jù)透視表中兩列相乘合計的實用指南? 在數(shù)據(jù)分析的日常工作中,數(shù)據(jù)透視表憑借其強大的數(shù)據(jù)匯總和分析功能,成為了 Excel 用戶 ...
2025-07-11尊敬的考生: 您好! 我們誠摯通知您,CDA Level I和 Level II考試大綱將于 2025年7月25日 實施重大更新。 此次更新旨在確保認 ...
2025-07-10BI 大數(shù)據(jù)分析師:連接數(shù)據(jù)與業(yè)務的價值轉化者? ? 在大數(shù)據(jù)與商業(yè)智能(Business Intelligence,簡稱 BI)深度融合的時代,BI ...
2025-07-10SQL 在預測分析中的應用:從數(shù)據(jù)查詢到趨勢預判? ? 在數(shù)據(jù)驅動決策的時代,預測分析作為挖掘數(shù)據(jù)潛在價值的核心手段,正被廣泛 ...
2025-07-10數(shù)據(jù)查詢結束后:分析師的收尾工作與價值深化? ? 在數(shù)據(jù)分析的全流程中,“query end”(查詢結束)并非工作的終點,而是將數(shù) ...
2025-07-10CDA 數(shù)據(jù)分析師考試:從報考到取證的全攻略? 在數(shù)字經(jīng)濟蓬勃發(fā)展的今天,數(shù)據(jù)分析師已成為各行業(yè)爭搶的核心人才,而 CDA(Certi ...
2025-07-09【CDA干貨】單樣本趨勢性檢驗:捕捉數(shù)據(jù)背后的時間軌跡? 在數(shù)據(jù)分析的版圖中,單樣本趨勢性檢驗如同一位耐心的偵探,專注于從單 ...
2025-07-09year_month數(shù)據(jù)類型:時間維度的精準切片? ? 在數(shù)據(jù)的世界里,時間是最不可或缺的維度之一,而year_month數(shù)據(jù)類型就像一把精準 ...
2025-07-09CDA 備考干貨:Python 在數(shù)據(jù)分析中的核心應用與實戰(zhàn)技巧? ? 在 CDA 數(shù)據(jù)分析師認證考試中,Python 作為數(shù)據(jù)處理與分析的核心 ...
2025-07-08SPSS 中的 Mann-Kendall 檢驗:數(shù)據(jù)趨勢與突變分析的有力工具? ? ? 在數(shù)據(jù)分析的廣袤領域中,準確捕捉數(shù)據(jù)的趨勢變化以及識別 ...
2025-07-08備戰(zhàn) CDA 數(shù)據(jù)分析師考試:需要多久?如何規(guī)劃? CDA(Certified Data Analyst)數(shù)據(jù)分析師認證作為國內權威的數(shù)據(jù)分析能力認證 ...
2025-07-08LSTM 輸出不確定的成因、影響與應對策略? 長短期記憶網(wǎng)絡(LSTM)作為循環(huán)神經(jīng)網(wǎng)絡(RNN)的一種變體,憑借獨特的門控機制,在 ...
2025-07-07統(tǒng)計學方法在市場調研數(shù)據(jù)中的深度應用? 市場調研是企業(yè)洞察市場動態(tài)、了解消費者需求的重要途徑,而統(tǒng)計學方法則是市場調研數(shù) ...
2025-07-07CDA數(shù)據(jù)分析師證書考試全攻略? 在數(shù)字化浪潮席卷全球的當下,數(shù)據(jù)已成為企業(yè)決策、行業(yè)發(fā)展的核心驅動力,數(shù)據(jù)分析師也因此成為 ...
2025-07-07剖析 CDA 數(shù)據(jù)分析師考試題型:解鎖高效備考與答題策略? CDA(Certified Data Analyst)數(shù)據(jù)分析師考試作為衡量數(shù)據(jù)專業(yè)能力的 ...
2025-07-04SQL Server 字符串截取轉日期:解鎖數(shù)據(jù)處理的關鍵技能? 在數(shù)據(jù)處理與分析工作中,數(shù)據(jù)格式的規(guī)范性是保證后續(xù)分析準確性的基礎 ...
2025-07-04CDA 數(shù)據(jù)分析師視角:從數(shù)據(jù)迷霧中探尋商業(yè)真相? 在數(shù)字化浪潮席卷全球的今天,數(shù)據(jù)已成為企業(yè)決策的核心驅動力,CDA(Certifie ...
2025-07-04CDA 數(shù)據(jù)分析師:開啟數(shù)據(jù)職業(yè)發(fā)展新征程? ? 在數(shù)據(jù)成為核心生產(chǎn)要素的今天,數(shù)據(jù)分析師的職業(yè)價值愈發(fā)凸顯。CDA(Certified D ...
2025-07-03