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