2015-10-13 7 views
10

Ho una tabella di dati dt:Cosa significa ".N" nella tabella dati in 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 

Il risultato di dt[, .N, by=a] è

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

So che i by=a o by="a" mezzi raggruppati per a colonna e la colonna N è la somma dei tempi di duplicati di a. Tuttavia, non uso nrow() ma ho ottenuto il risultato. .N non è solo il nome della colonna? Non riesco a trovare il documento per ??".N" in R. Ho provato a utilizzare .K, ma non funziona. Cosa significa .N?

+6

Una spiegazione di '.N' è nella documentazione'? Data.table' in Argomenti-> di – digEmAll

+2

Ulteriori informazioni in questo cheat sheet https://s3.amazonaws.com/assets.datacamp.com/img/blog /data+table+cheat+sheet.pdf –

+0

Ho capito perché non riesco a trovare il documento su ".N" in RStudio, perché le informazioni ".N" sono scritte nel manuale di riferimento in pdf ma non nel documento html . Grazie a digEmAll e Pierre Lafortune. Il cheat sheet è interessante e utile per me per migliorare le mie capacità di codifica. –

risposta

13

Pensa a .N come variabile per il numero di istanze. Per esempio:

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

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

Il vostro esempio restituisce una nuova variabile con il numero di righe per caso:

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' 

fa questo aiuto?