2015-10-13 109 views
10

我有一个数据表dt“.N”表示r中的数据表中的含义是什么?

dt = data.table(a=LETTERS[c(1,1:3)],b=4:7) 

    a b 
1: A 4 
2: A 5 
3: B 6 
4: C 7 

dt[, .N, by=a]结果是

a N 
1: A 2 
2: B 1 
3: C 1 

我知道由a列分组的by=aby="a"装置和N列是重复的时间之和a。但是,我不使用nrow(),但我得到了结果。 .N不只是列名?我无法在R中找到??".N"的文档。我尝试使用.K,但它不起作用。 .N是什么意思?

+6

'.N'的解释在'?data.table'文件下的参数 - > – digEmAll

+2

更多信息在这个作弊表https://s3.amazonaws.com/assets.datacamp.com/img/blog /data+table+cheat+sheet.pdf –

+0

我明白了为什么我无法在RStudio中找到关于“.N”的文档,因为“.N”信息写在pdf参考手册中,而不是在html文档中。感谢digEmAll和Pierre Lafortune。备忘单对于我提高编码技巧很有帮助。 –

回答

13

.N想象为实例数量的变量。例如:

dt <- data.table(a = LETTERS[c(1,1:3)], b = 4:7) 

dt[.N] # returns the last row 
# a b 
# 1: C 7 

你的榜样返回一个新的变量,每箱的行数:

dt[, new_var := .N, by = a] 
dt 
# a b new_var 
# 1: A 4  2 # 2 'A's 
# 2: A 5  2 
# 3: B 6  1 # 1 'B' 
# 4: C 7  1 # 1 'C' 

是否帮助你吗?

相关问题