如果找到提供的分組值之一,並且數值列值大於某個值,如何對 R 資料框進行子集化?


子集化是一種常用的技術,根據分析的目標,它可以用於許多不同的目的。如果找到提供的分組值之一,則對資料框進行子集化,這意味著如果分類變數中的任何值存在於分類列中,我們都希望進行子集化,並且如果我們想要包含大於某個值的數值列,則需要遵循以下步驟 -

  • 建立資料框。
  • 如果分類變數的任何提供的數值存在並且數值列值大於某個值,則對資料框進行子集化。

建立資料框

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

 即時演示

x<-rnorm(20)
Factor<-sample(c("Male","Female","Unknown"),20,replace=TRUE)
df<-data.frame(x,Factor)
df

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

        x     Factor
1 -0.83268524 Female
2 1.66904204  Male
3 0.26228885  Unknown
4 0.42511920  Male
5 0.67910328  Female
6 -0.82505888 Female
7 -0.06084790 Male
8 0.56949099  Unknown
9 0.79874121  Female
10 -0.09112936 Unknown
11 -1.04839717 Male
12 -1.24128634 Unknown
13 1.51186118  Unknown
14 -0.79498005 Unknown
15 0.18607842  Male
16 -0.60505867 Female
17 1.24925658  Male
18 1.14835757  Male
19 -0.24867122 Female
20 0.59079712 Unknown

對資料框進行子集化

載入 dplyr 包,如果 Factor 列中存在 Male 或 Female,並且 x 大於 0.5,則對 df 進行子集化 -

library(dplyr)
x<-rnorm(20)
Factor<-sample(c("Male","Female","Unknown"),20,replace=TRUE)
df<-data.frame(x,Factor)
df %>% filter(x>0.5,Factor=="Male"|Factor=="Female")

輸出

      x    Factor
1 1.6690420 Male
2 0.6791033 Female
3 0.7987412 Female
4 1.2492566 Male
5 1.1483576 Male

更新於: 2021-08-13

113 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.