如何在 R 中將資料框的行值除以每行中不包括 0 的最大值?
為了在 R 中將資料框的行值除以不包括 0 的行最大值,我們可以按照以下步驟操作:
- 首先,建立一個數據框。
- 然後,使用 apply 函式和 if else 函式將資料框的行值除以不包括 0 的行最大值。
建立資料框
讓我們建立一個如下所示的資料框:
x<-sample(0:2,25,replace=TRUE) y<-sample(0:2,25,replace=TRUE) z<-sample(0:2,25,replace=TRUE) df<-data.frame(x,y,z) df
執行上述指令碼後,將生成以下輸出(由於隨機化,此輸出在您的系統上可能會有所不同):
x y z 1 0 0 1 2 1 0 0 3 0 0 0 4 1 0 1 5 0 0 2 6 2 0 1 7 1 2 0 8 2 0 2 9 0 2 1 10 0 2 0 11 1 2 0 12 2 2 1 13 0 0 1 14 1 1 0 15 2 1 2 16 2 0 2 17 2 1 0 18 0 0 0 19 0 0 0 20 1 2 2 21 2 0 1 22 2 0 2 23 2 1 2 24 0 2 1 25 0 2 2
將資料框的行值除以不包括 0 的行最大值
使用 apply 函式將 df 的行值除以不包括 0 的行最大值:
x<-sample(0:2,25,replace=TRUE) y<-sample(0:2,25,replace=TRUE) z<-sample(0:2,25,replace=TRUE) df<-data.frame(x,y,z) df_new<-t(apply(df,1, function(x) if (0 %in% x) x else x/max(x))) df_new
輸出
x y z [1,] 0.0 0.0 1.0 [2,] 1.0 0.0 0.0 [3,] 0.0 0.0 0.0 [4,] 1.0 0.0 1.0 [5,] 0.0 0.0 2.0 [6,] 2.0 0.0 1.0 [7,] 1.0 2.0 0.0 [8,] 2.0 0.0 2.0 [9,] 0.0 2.0 1.0 [10,] 0.0 2.0 0.0 [11,] 1.0 2.0 0.0 [12,] 1.0 1.0 0.5 [13,] 0.0 0.0 1.0 [14,] 1.0 1.0 0.0 [15,] 1.0 0.5 1.0 [16,] 2.0 0.0 2.0 [17,] 2.0 1.0 0.0 [18,] 0.0 0.0 0.0 [19,] 0.0 0.0 0.0 [20,] 0.5 1.0 1.0 [21,] 2.0 0.0 1.0 [22,] 2.0 0.0 2.0 [23,] 1.0 0.5 1.0 [24,] 0.0 2.0 1.0 [25,] 0.0 2.0 2.0
廣告