fork(1) download
  1. library(dplyr)
  2. library(data.table)
  3. DT <- data.table(
  4. name = c("小明", "小明", "小英", "小美"),
  5. age = c(18, 18, 11, 22),
  6. gender = c("男", "男", "女", "女"),
  7. status = c("大學生", "大學生", "小學生", "大學生"),
  8. date = c("5/1", "5/3", "5/1", "5/4"),
  9. schedule = c("打球", "上課", "游泳", "唱歌"))
  10. class(DT)
  11.  
  12.  
  13. ## 同Data.frame
  14. DT1 <- DT %>%
  15. group_by(name, age, gender, status) %>%
  16. summarise(date = paste(date, collapse = ","),
  17. schedule = paste(schedule, collapse = ","))
  18. class(DT1) ## Tibble
  19. DT1
  20. ##
  21. DT2 <- DT[, .(date = paste(date, collapse = ","),
  22. schedule = paste(schedule, collapse = ",")),
  23. by = list(name, age, gender, status)]
  24. class(DT2) ## data.table
  25. DT2
  26.  
  27. ##
  28. library(tibble)
  29. TBL <- tibble(
  30. name = c("小明", "小明", "小英", "小美"),
  31. age = c(18, 18, 11, 22),
  32. gender = c("男", "男", "女", "女"),
  33. status = c("大學生", "大學生", "小學生", "大學生"),
  34. date = c("5/1", "5/3", "5/1", "5/4"),
  35. schedule = c("打球", "上課", "游泳", "唱歌"))
  36. class(TBL)
  37.  
  38. TBL1 <- TBL %>%
  39. group_by(name, age, gender, status) %>%
  40. summarise(date = paste(date, collapse = ","),
  41. schedule = paste(schedule, collapse = ","))
  42. class(TBL1)
  43. TBL1
  44. # your code goes here
Success #stdin #stdout #stderr 0.77s 60800KB
stdin
Standard input is empty
stdout
[1] "data.table" "data.frame"
[1] "grouped_df" "tbl_df"     "tbl"        "data.frame"
Source: local data frame [3 x 6]
Groups: name, age, gender [?]

   name   age gender status    date  schedule
  <chr> <dbl>  <chr>  <chr>   <chr>     <chr>
1  小明    18     男 大學生 5/1,5/3 打球,上課
2  小美    22     女 大學生     5/4      唱歌
3  小英    11     女 小學生     5/1      游泳
[1] "data.table" "data.frame"
   name age gender status    date  schedule
1: 小明  18     男 大學生 5/1,5/3 打球,上課
2: 小英  11     女 小學生     5/1      游泳
3: 小美  22     女 大學生     5/4      唱歌
[1] "tbl_df"     "tbl"        "data.frame"
[1] "grouped_df" "tbl_df"     "tbl"        "data.frame"
Source: local data frame [3 x 6]
Groups: name, age, gender [?]

   name   age gender status    date  schedule
  <chr> <dbl>  <chr>  <chr>   <chr>     <chr>
1  小明    18     男 大學生 5/1,5/3 打球,上課
2  小美    22     女 大學生     5/4      唱歌
3  小英    11     女 小學生     5/1      游泳
stderr
Attaching package: ‘dplyr’

The following objects are masked from ‘package:stats’:

    filter, lag

The following objects are masked from ‘package:base’:

    intersect, setdiff, setequal, union

------------------------------------------------------------------------------
data.table + dplyr code now lives in dtplyr.
Please library(dtplyr)!
------------------------------------------------------------------------------

Attaching package: ‘data.table’

The following objects are masked from ‘package:dplyr’:

    between, first, last