如何將不同的函式應用於 R 資料幀中的分組值?


要將不同的函式應用於 R 資料幀中的分組值,我們可以遵循以下步驟 -

  • 首先,建立一個數據幀。
  • 然後,使用 ifelse 函式將不同的函式應用於分組值。

建立資料幀

讓我們建立一個數據幀,如下所示 -

 現場例項

x<-sample(1:50,25)
Grp<-sample(LETTERS[1:4],25,replace=TRUE)
df<-data.frame(x,Grp)
df

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

  x Grp
1 28 B
2 50 B
3 42 D
4 7 A
5 37 D
6 15 D
7 13 B
8 20 C
9 33 B
10 23 C
11 41 A
12 36 B
13 1 A
14 29 C
15 46 D
16 19 C
17 47 D
18 31 A
19 30 A
20 48 A
21 27 B
22 22 D
23 32 C
24 9 A
25 39 D

將不同函式應用於分組值

使用 if else 函式將不同函式應用於資料幀 df 的 Grp 列中的分組值 -

x<-sample(1:50,25)
Grp<-sample(LETTERS[1:4],25,replace=TRUE)
df<-data.frame(x,Grp)
df$New_x<-
ifelse(df$Grp=="A",2+x,ifelse(df$Grp=="B",0.5*x,ifelse(df$Grp=="C",2*x,ifelse(df$Gr
p=="D",x-1,NA))))
df

輸出

   x Grp New_x
1  28 B 14.0
2  50 B 25.0
3  42 D 41.0
4  7 A 9.0
5  37 D 36.0
6  15 D 14.0
7  13 B 6.5
8 20 C 40.0
9 33 B 16.5
10 23 C 46.0
11 41 A 43.0
12 36 B 18.0
13 1 A 3.0
14 29 C 58.0
15 46 D 45.0
16 19 C 38.0
17 47 D 46.0
18 31 A 33.0
19 30 A 32.0
20 48 A 50.0
21 27 B 13.5
22 22 D 21.0
23 32 C 64.0
24 9 A 11.0
25 39 D 38.0

更新於: 13-Aug-2021

132 次瀏覽

啟動你的 職業生涯

透過完成課程取得認證

開始
廣告
© . All rights reserved.