如何在R中的data.table对象中缩放某些列?

要data.table在 R 中缩放对象中的某些列,我们可以按照以下步骤操作 -

  • 首先,创建一个data.table对象。

  • 然后,使用单个方括号对列进行子集化,并使用 lapply、list 和 scale 函数来缩放这些列。

示例

创建data.table对象

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

library(data.table)
var1<-rpois(25,5)
var2<-rpois(25,2)
var3<-rpois(25,5)
var4<-rpois(25,3)
DT<-data.table(var1,var2,var3,var4)
DT
输出结果

执行时,上述脚本生成以下内容output(this output will vary on your system due to randomization)-

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

缩放一些列

使用单个方括号对 var1 和 var2 列进行子集,并使用 lapply、list 和 scale 函数来缩放这些列,如下所示 -

DT[,c("var1","var2"):=lapply(list(var1,var2),scale)]
DT
输出结果
      var1         var2   var3 var4
1:  -0.06546537  0.0000000 1   2
2:  -0.88378246  2.2677868 4   2
3:   0.34369318  0.0000000 7   3
4:   1.98032735  0.7559289 5   3
5:  -0.88378246  2.2677868 3   0
6:  -0.47462391 -0.7559289 6   2
7:  -0.47462391 -0.7559289 5   3
8:  -0.88378246 -0.7559289 6   0
9:  -1.29294100  0.0000000 9   1
10: -1.29294100 -0.7559289 6   6
11: -0.06546537  0.0000000 5   2
12: -0.88378246 -0.7559289 2   3
13: -0.47462391  1.5118579 4   1
14:  1.16201027 -1.5118579 5   2
15:  0.34369318 -0.7559289 2   2
16: -0.47462391  0.7559289 3   3
17: -1.29294100 -0.7559289 7   2
18:  1.16201027  0.0000000 7   3
19:  1.57116881  0.7559289 7   0
20:  0.34369318  0.0000000 6   4
21:  1.16201027  0.0000000 4   4
22: -0.47462391 -1.5118579 3   2
23:  1.98032735  0.0000000 4   4
24: -0.06546537  0.7559289 6   7
25: -0.06546537 -0.7559289 6   1
        var1        var2  var3 var4

猜你喜欢