如何在 R 的 data.table 对象中按行和对行值进行划分?


如需在 R 的 data.table 对象中按行和对行值进行划分,我们可以按照以下步骤进行操作:-

  • 首先,创建一个 data.table 对象。
  • 然后,使用 apply 函数按行和对 data.table 对象行值进行划分。

创建 data.table 对象

让我们创建一个 data.table 对象,如下所示:-

library(data.table)
x<-rpois(25,2)
y<-rpois(25,2)
DT<-data.table(x,y)
DT

在执行上述脚本时,生成以下输出(此输出因系统中的随机性而异):-

   x y
1: 4 3
2: 0 3
3: 1 2
4: 2 2
5: 2 0
6: 2 3
7: 0 3
8: 1 2
9: 3 0
10: 1 2
11: 1 4
12: 1 4
13: 4 1
14: 2 6
15: 1 2
16: 1 3
17: 2 2
18: 0 1
19: 0 4
20: 1 2
21: 1 1
22: 5 0
23: 4 2
24: 2 2
25: 2 2
x y

按行和对 data.table 对象行值进行划分

使用 apply 函数按行和对 DT 行值进行划分:-

library(data.table)
x<-rpois(25,2)
y<-rpois(25,2)
DT<-data.table(x,y)
DT_new<-t(apply(DT,1, function(x) x/sum(x)))
DT_new

输出

         x          y
[1,] 0.5714286 0.4285714
[2,] 0.0000000 1.0000000
[3,] 0.3333333 0.6666667
[4,] 0.5000000 0.5000000
[5,] 1.0000000 0.0000000
[6,] 0.4000000 0.6000000
[7,] 0.0000000 1.0000000
[8,] 0.3333333 0.6666667
[9,] 1.0000000 0.0000000
[10,] 0.3333333 0.6666667
[11,] 0.2000000 0.8000000
[12,] 0.2000000 0.8000000
[13,] 0.8000000 0.2000000
[14,] 0.2500000 0.7500000
[15,] 0.3333333 0.6666667
[16,] 0.2500000 0.7500000
[17,] 0.5000000 0.5000000
[18,] 0.0000000 1.0000000
[19,] 0.0000000 1.0000000
[20,] 0.3333333 0.6666667
[21,] 0.5000000 0.5000000
[22,] 1.0000000 0.0000000
[23,] 0.6666667 0.3333333
[24,] 0.5000000 0.5000000
[25,] 0.5000000 0.5000000

更新于: 13-8-2021

135 次浏览

Kickstart Your Career

完成课程后获得认证

开始
广告