如何根據分類列中的單個值對 R 資料框進行子集選擇?
要根據分類列中的單個值對 R 資料框進行子集選擇,我們可以按照以下步驟操作:
- 首先,建立一個數據框。
- 然後,使用 dplyr 包的 filter 函式根據條件對資料框進行子集選擇。
建立資料框
讓我們建立一個如下所示的資料框:
Class<-sample(c("First","Second","Third","Fourth"),25,replace=TRUE)
x<-sample(1:10,25,replace=TRUE)
y<-sample(1:10,25,replace=TRUE)
z<-sample(1:10,25,replace=TRUE)
df<-data.frame(Class,x,y,z)
df執行上述指令碼後,將生成以下輸出(由於隨機化,此輸出可能因系統而異):
Class x y z 1 Fourth 10 6 7 2 First 10 1 5 3 Third 3 5 9 4 First 2 8 5 5 Third 4 9 9 6 First 2 5 3 7 Second 2 7 7 8 Third 6 4 4 9 First 2 9 3 10 First 10 7 4 11 Fourth 1 9 3 12 First 8 7 8 13 First 7 5 3 14 First 10 4 2 15 First 8 9 2 16 First 9 9 10 17 Third 1 1 10 18 Third 5 9 6 19 First 3 2 9 20 Third 8 5 4 21 Third 9 2 7 22 Second 5 9 3 23 Third 10 3 6 24 First 10 6 9 25 Third 1 10 4
根據分類列條件對資料框進行子集選擇
使用 filter 函式,當 x 大於 5 且 Class 為 First 時,對 df 進行子集選擇:
Class<-sample(c("First","Second","Third","Fourth"),25,replace=TRUE)
x<-sample(1:10,25,replace=TRUE)
y<-sample(1:10,25,replace=TRUE)
z<-sample(1:10,25,replace=TRUE)
df<-data.frame(Class,x,y,z)
library(dplyr)
df %>% group_by(Class) %>% filter(x>5 & Class=="First")輸出
# A tibble: 8 x 4 # Groups: Class [1] Class x y z <chr> <int> <int> <int> 1 First 10 1 5 2 First 10 7 4 3 First 8 7 8 4 First 7 5 3 5 First 10 4 2 6 First 8 9 2 7 First 9 9 10 8 First 10 6 9
根據分類列條件對資料框進行子集選擇
使用 filter 函式,當 y 大於 5 且 Class 為 First 時,對 df 進行子集選擇:
Class<-sample(c("First","Second","Third","Fourth"),25,replace=TRUE)
x<-sample(1:10,25,replace=TRUE)
y<-sample(1:10,25,replace=TRUE)
z<-sample(1:10,25,replace=TRUE)
df<-data.frame(Class,x,y,z)
library(dplyr)
df %>% group_by(Class) %>% filter(y>5 & Class=="First")輸出
# A tibble: 7 x 4 # Groups: Class [1] Class x y z <chr> <int> <int> <int> 1 First 2 8 5 2 First 2 9 3 3 First 10 7 4 4 First 8 7 8 5 First 8 9 2 6 First 9 9 10 7 First 10 6 9
根據分類列條件對資料框進行子集選擇
使用 filter 函式,當 z 大於 5 且 Class 為 First 時,對 df 進行子集選擇:
Class<-sample(c("First","Second","Third","Fourth"),25,replace=TRUE)
x<-sample(1:10,25,replace=TRUE)
y<-sample(1:10,25,replace=TRUE)
z<-sample(1:10,25,replace=TRUE)
df<-data.frame(Class,x,y,z)
library(dplyr)
df %>% group_by(Class) %>% filter(z>5 & Class=="First")輸出
# A tibble: 4 x 4 # Groups: Class [1] Class x y z <chr> <int> <int> <int> 1 First 8 7 8 2 First 9 9 10 3 First 3 2 9 4 First 10 6 9
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP