Skip to content

Latest commit

 

History

History
76 lines (74 loc) · 1.62 KB

3.md

File metadata and controls

76 lines (74 loc) · 1.62 KB

##通过j来操作列 ###通过j来选择一列

> DT[,V2]
[1]"A" "A" "A" "A" "B" "B" "B" "B" "C" "C" "C" "C"

注意到V2这一列是以向量的形式返回的 ###通过j来选择多列

> DT[,.(V2,V3)]
    V2      V3
 1:  A  0.3408
 2:  A -0.7460
 3:  A -0.3795
 4:  A -0.7033
 5:  B -0.7033
 6:  B  0.3408
 7:  B -0.7460
 8:  B -0.3795
 9:  C -0.3795
10:  C -0.7033
11:  C  0.3408
12:  C -0.7460

V2与V3这两列以data.table的形式返回

.()为list()的一个别名。如果使用.(),返回的为一个data.table对象。如果不使用.(),结果为返回一个向量。 ###在j上调用函数

> DT[,sum(V1)]
[1] 18

以向量的形式返回V1列中所有元素的总和 ###在多列上进行计算 以data.table的形式,返回V1这列的所有元素之和与V3这列的标准差

> DT[,.(sum(V1),sd(V3))]
   V1        V2
1: 18 0.4546055

###指定计算列的列名 类似上例,但有一个新的列名

> DT[,.(Aggregate = sum(V1), Sd.V3 = sd(V3))]
   Aggregate     Sd.V3
1:        18 0.4546055

###若列的长度不一,则会循环对齐

选择V1这一列,并计算V3这列的标准差,将会得到一个标准差的值并循环补齐

> DT[,.(V1, Sd.V3 = sd(V3))]
 V1     Sd.V3
 1:  1 0.4546055
 2:  2 0.4546055
 3:  1 0.4546055
 4:  2 0.4546055
 5:  2 0.4546055
 6:  1 0.4546055
 7:  2 0.4546055
 8:  1 0.4546055
 9:  1 0.4546055
10:  2 0.4546055
11:  1 0.4546055
12:  2 0.4546055

###多个表达式可以包裹在花括号中 输出V2这一列并绘制V3这一列

> DT[,{print(V2)
plot(V3)
NULL}]
[1] "A" "A" "A" "A" "B" "B" "B" "B" "C" "C" "C" "C"
#And a plot
NULL