r - Unexpected result using unique inside a data.table -


given data.table (vith version 1.9.5)

test <- data.table(1:20,rep(1:5,each=4, times=1)) 

if run this:

test[unique(v2)] 

i result:

   v1 v2 1:  1  1 2:  2  1 3:  3  1 4:  4  1 5:  5  2 

is intended beahaviour or bug? or i'm not using properly?

i reading "r book" , in example use test[unique(vegetation),] , it's intended select subset of rows unique vegetation.

i expected like

   v1  v2 1:  1   1 2:  5   2 3:  9   3 4:  13  4 5:  16  5 

though understand need specify aggregation criteria.

test[,unique(v2)] gives [1] 1 2 3 4 5. since test[1:5] supposed give first 5 rows , that's get, there no bug.

to expected result, can this:

test[!duplicated(v2)] #   v1 v2 #1:  1  1 #2:  5  2 #3:  9  3 #4: 13  4 #5: 17  5 

or this:

test[, v1[1], = v2] #   v2 v1 #1:  1  1 #2:  2  5 #3:  3  9 #4:  4 13 #5:  5 17 

or @arun reminds me there data.table method unique:

unique(test, by="v2") #   v1 v2 #1:  1  1 #2:  5  2 #3:  9  3 #4: 13  4 #5: 17  5 

Comments

Popular posts from this blog

php - failed to open stream: HTTP request failed! HTTP/1.0 400 Bad Request -

java - How to filter a backspace keyboard input -

java - Show Soft Keyboard when EditText Appears -