2015-10-13 14 views
10

Mam tabelę danych dt:Co oznacza ".N" w tabeli danych w 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 

Wynik dt[, .N, by=a] jest

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

Znam by=a lub by="a" środki pogrupowane według a kolumnie i kolumna N jest sumą powielanych czasach a. Jednak nie używam nrow(), ale otrzymałem wynik. .N to nie tylko nazwa kolumny? Nie mogę znaleźć dokumentu przez ??".N" w R. Próbowałem użyć .K, ale to nie działa. Co oznacza .N?

+6

Wyjaśnienie '.N' znajduje się w dokumentacji'? Data.table' w Argumenty-> przez – digEmAll

+2

Więcej informacji w tym ściągnięciu https://s3.amazonaws.com/assets.datacamp.com/img/blog /data+table+cheat+sheet.pdf –

+0

Mam rację, dlaczego nie mogę znaleźć dokumentu o ".N" w RStudio, ponieważ informacja ".N" jest napisana w podręczniku do pliku pdf, ale nie w dokumencie HTML . Dziękuję digEmAll i Pierre Lafortune. Arkusz do ściągnięcia jest dla mnie interesujący i pomocny w ulepszaniu umiejętności pisania. –

Odpowiedz

13

Pomyśl o .N jako zmiennej dla liczby wystąpień. Na przykład:

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

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

Twój przykład zwraca nową zmienną liczbę wierszy na razie:

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' 

Czy to ma pomóc?