在r中取資料集取子集是常用的操作,其使用的方法很零活,但是有些操作規律性不強,容易讓初學者產生一些疑惑,下面我總結了一些選取子集的方法,希望對大家有所幫助(部分**和內容選自《r語言實戰》)
manager <- c(1, 2, 3, 4, 5)
date <- c("10/24/08", "10/28/08", "10/1/08", "10/12/08", "5/1/09")
gender <- c("m", "f", "f", "m", "f")
age <- c(32, 45, 25, 39, 99)
q1 <- c(5, 3, 3, 3, 2)
q2 <- c(4, 5, 5, 3, 2)
q3 <- c(5, 2, 5, 4, 1)
q4 <- c(5, 5, 5, na, 2)
q5 <- c(5, 5, 2, na, 1)
leadership <- data.frame(manager, date, gender, age, q1, q2, q3, q4, q5, stringsasfactors = false)
一、保留法:
1、使用行數、列出取子集
dataframe[row indices,colum indices]
newdata <- leadership[, c(6:10)]
2、通過列名取子集
newdata <- leadership[c("q1", "q2", "q3", "q4", "q5")] ##只需要寫列名稱即可,行數取全量的(沒有行row indices,)
3、生成邏輯向量法
newdata <- leadership[which(leadership$gender == "m" & leadership$age > 30), ]
(1) 邏輯比較 leadership$gender=="m" 生成了向量 c(true, false, false, true,false) 。
(2) 邏輯比較 leadership$age > 30 生成了向量 c(true, true, false, true, true) 。
(3) 邏輯比較 c(true, false, false, true, true) & c(true, true, false, true,true) 生成了向量 c(true, false, false, true, false) 。
(4) 函式 which() 給出了向量中值為 true 元素的下標。因此, which(c(true, false,false, true, false)) 生成了向量 c(1, 4) 。
(5) leadership[c(1,4),] 從資料框中選擇了第乙個和第四個觀測。這就滿足了我們的選取準則(30歲以上的男性)。
4、subset() 函式
newdata <- subset(leadership, age >= 35 | age < 24, select = c(q1, q2, q3, q4))
newdata <- subset(leadership, gender == "m" & age > 25, select = gender:q4)
5、隨機抽樣
leadership 資料集中隨機抽取乙個大小為3的樣本
mysample <- leadership[sample(1:nrow(leadership),3,replace = f),]
二、丟棄法:
1、使用行數、列出取子集
newdata <- leadership[,-c(1:2)]
newdata <- leadership[-c(1:2)]
newdata <- leadership[,-c(7:8)]
newdata <- leadership[c(-7, -8)]
newdata <- leadership[-c(7:8)]
2、生成邏輯向量法
myvars <- names(leadership) %in% c("q3", "q4")
newdata <- leadership[!myvars]
##names(leadership) %in% c("q3", "q4") 返回了乙個邏輯型向量, names(leadership)
中每個 匹配 q3 或 q4 的元素的值為 true ,反之為 false : c(false, false, false, false,false, false, false, true, true, false) 。
錯誤的方法:
newdata <- leadership[!c("q1", "q2", "q3", "q4", "q5")] ##裡邊不是邏輯向量
總結:1、可以用行列數取子集(保留法、丟棄法都可以)
2、可以通過列名選取(保留法)
3、通過邏輯向量選擇(保留法,丟棄法)
R語言學習筆記 一
r是用於統計分析 繪圖的語言和操作環境。r是屬於gnu系統的乙個自由 免費 源 開放的軟體,它是乙個用於統計計算和統計製圖的優秀工具。r程式包是多個函式的集合,具有詳細的說明和示例。window下的r程式包是經過編譯的zip包。每個程式包包含r函式 資料 幫助檔案 描述檔案等。r程式包是r功能擴充套...
R語言學習筆記(一)
r語言學習筆記 一 r中的資料 一 r中的常用物件 objects 包括 1 向量 vector 2 因子 factor 是乙個分類變數 3 陣列 array 是乙個k維的資料表,所有的元素必須是同一種型別 4 矩陣 matrix 是陣列的乙個特例,其中k 2 5 資料框 data frame 是由...
R語言學習筆記
1.資料輸入 read.table n fileposition 函式 eg.x read.table c users administrator desktop 1.txt header t 目前只知道可以完好地讀入txt檔案 空格隔開 excel不支援 csv讀入不完全。ps.可以用excel生...