如果R資料框的任何列的值大於某個特定值,如何子集資料框的行?


如果R資料框的任何列的值大於某個特定值,要子集資料框的行,我們可以按照以下步驟操作:

  • 首先,建立一個數據框。
  • 然後,使用dplyr包的filter_all函式和any_vars函式來子集資料框的行,以獲取任何列的值大於某個特定值的行。

建立資料框

讓我們建立一個如下所示的資料框:

 線上演示

x1<-sample(1:10,20,replace=TRUE)
x2<-sample(1:20,20,replace=TRUE)
df<-data.frame(x1,x2)
df

執行上述指令碼後,將生成以下輸出(由於隨機化,此輸出將在您的系統上有所不同):

 x1 x2
1  5 7
2  2 4
3  5 17
4  2 9
5  8 18
6  8 16
7  9 14
8  1 10
9  7 12
10 4 20
11 7 19
12 9 8
13 7 15
14 1 12
15 8 10
16 3 14
17 5 2
18 5 7
19 2 8
20 7 15

子集資料框

載入dplyr包並使用filter_all函式和any_vars函式來子集資料框df的行,以獲取所有列的值大於10的行:

x1<-sample(1:10,20,replace=TRUE)
x2<-sample(1:20,20,replace=TRUE)
df<-data.frame(x1,x2)
library(dplyr)
df %>% filter_all(any_vars(.>10))

輸出

  x1 x2
1  5 17
2  8 18
3  8 16
4  9 14
5  7 12
6  4 20
7  7 19
8  7 15
9  1 12
10 3 14
11 7 15

更新於: 2021年8月13日

791 次檢視

啟動您的 職業生涯

透過完成課程獲得認證

開始
廣告

© . All rights reserved.