Вывод списка R data.table против вывода вектора - PullRequest
0 голосов
/ 15 ноября 2018
d <- structure(list(Name = structure(c(1L, 1L, 1L, 2L, 2L, 2L, 3L, 3L, 3L), .Label = c("Aira", "Ben", "Cat"), class = "factor"), Month = c(1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L), Rate1 = c(12L, 18L, 19L, 53L, 22L, 19L, 22L, 67L, 45L), Rate2 = c(23L, 73L, 45L, 19L, 87L, 45L, 87L, 43L, 32L)), .Names = c("Name", "Month", "Rate1", "Rate2"), class = c("data.table", "data.frame"), row.names = c(NA, -9L)) 

> d
   Name Month Rate1 Rate2
1: Aira     1    12    23
2: Aira     2    18    73
3: Aira     3    19    45
4:  Ben     1    53    19
5:  Ben     2    22    87
6:  Ben     3    19    45
7:  Cat     1    22    87
8:  Cat     2    67    43
9:  Cat     3    45    32

У меня есть вышеупомянутая таблица data.table, и я хочу узнать разницу между следующими двумя операциями.Я знаю, что .() - это сокращение от list, а c() - вектор.Что data.table делает с этими двумя разными синтаксисами?Все, что я могу наблюдать, это то, что в первом случае были две переменные, а во втором - одна переменная.

> d[, .(mean(Rate1), mean(Rate2)), by = Name]
   Name    V1    V2
1: Aira 16.33 47.00
2:  Ben 31.33 50.33
3:  Cat 44.67 54.00

и

> d[, c(mean(Rate1), mean(Rate2)), by = Name]
   Name    V1
1: Aira 16.33
2: Aira 47.00
3:  Ben 31.33
4:  Ben 50.33
5:  Cat 44.67
6:  Cat 54.00
...