如何在 R 中按列数划分数据帧行?
若要在 R 中按列数划分数据帧行,我们可以遵循以下步骤 −
- 首先,创建一个数据帧。
- 然后,使用 apply 函数按照列数划分数据帧行。
创建数据帧
让我们创建一个如下所示的数据帧 −
x<-rpois(25,1) y<-rpois(25,2) z<-rpois(25,2) df<-data.frame(x,y,z) df
执行后,以上脚本会生成以下输出(此输出将在您的系统上因随机化而有所不同) −
x y z 1 0 1 4 2 0 4 2 3 1 3 2 4 1 1 3 5 0 4 2 6 0 2 4 7 2 1 1 8 0 4 1 9 0 2 2 10 0 1 1 11 0 2 5 12 3 3 1 13 1 2 2 14 1 3 4 15 1 1 1 16 3 4 3 17 3 1 2 18 2 2 0 19 1 2 3 20 1 1 0 21 0 1 1 22 2 2 0 23 1 2 1 24 0 2 0 25 0 1 1
按照列数划分数据帧行
使用 apply 函数将 df 的行按照 df 中的列数进行划分 −
x<-rpois(25,1) y<-rpois(25,2) z<-rpois(25,2) df<-data.frame(x,y,z) df_new<-t(apply(df,1, function(x) x/length(x))) df_new
x y z [1,] 0.0000000 0.3333333 1.3333333 [2,] 0.0000000 1.3333333 0.6666667 [3,] 0.3333333 1.0000000 0.6666667 [4,] 0.3333333 0.3333333 1.0000000 [5,] 0.0000000 1.3333333 0.6666667 [6,] 0.0000000 0.6666667 1.3333333 [7,] 0.6666667 0.3333333 0.3333333 [8,] 0.0000000 1.3333333 0.3333333 [9,] 0.0000000 0.6666667 0.6666667 [10,] 0.0000000 0.3333333 0.3333333 [11,] 0.0000000 0.6666667 1.6666667 [12,] 1.0000000 1.0000000 0.3333333 [13,] 0.3333333 0.6666667 0.6666667 [14,] 0.3333333 1.0000000 1.3333333 [15,] 0.3333333 0.3333333 0.3333333 [16,] 1.0000000 1.3333333 1.0000000 [17,] 1.0000000 0.3333333 0.6666667 [18,] 0.6666667 0.6666667 0.0000000 [19,] 0.3333333 0.6666667 1.0000000 [20,] 0.3333333 0.3333333 0.0000000 [21,] 0.0000000 0.3333333 0.3333333 [22,] 0.6666667 0.6666667 0.0000000 [23,] 0.3333333 0.6666667 0.3333333 [24,] 0.0000000 0.6666667 0.0000000 [25,] 0.0000000 0.3333333 0.3333333
广告